2016-03-05 145 views
1

我有我的表如下。其實玩家團隊1和2樞軸表查詢

teamNO playername 
=================== 
1  Joe 
1  Jack 
1  Micheal 
1  Ken 
1  Fendy 
2  Helen 
2  Mike 
2  Chris 
2  George 
2  Dan 

我想寫我的表像下一個,但我只得到1行排名由他們的總積分。我認爲由於teamno只有1和2.有什麼辦法可以實現這個目標嗎?在此先感謝

Rank Team1   Team2 
================================ 
1  Joe   Helen 
2  Jack   Mike 
3  Micheal  Chris 
4  Ken   George 
5  Fendy   Dan 
+1

既然這樣,沒有你不能。沒有明確的排名或指示排名基礎加入的點數。是否有任何其他基礎表來源用於確定排名? – DRapp

回答

0
;WITH cte AS(
    SELECT * FROM (VALUES 
    (1, 'Joe'), 
    (1, 'Jack'), 
    (1, 'Micheal'), 
    (1, 'Ken'), 
    (1, 'Fendy'), 
    (2, 'Helen'), 
    (2, 'Mike '), 
    (2, 'Chris'), 
    (2, 'George'), 
    (2, 'Dan') 
    ) as t(teamNO, playername)), 
    final AS (
    SELECT ROW_NUMBER() OVER (PARTITION BY TeamNo ORDER BY TeamNo) AS [Rank],* 
    FROM cte) 

SELECT f1.[Rank], f1.playername as Team1, f2.playername as Team2 
FROM final f1 
LEFT JOIN final f2 ON f1.[Rank] = f2.[Rank] and f1.TeamNo != f2.TeamNo 
WHERE f1.teamNO = 1 

結果:

Rank     Team1 Team2 
-------------------- ------- ------- 
1     Joe  Helen 
2     Jack Mike 
3     Micheal Chris 
4     Ken  George 
5     Fendy Dan 

(5 row(s) affected)