2013-03-09 100 views
0

現在我有兩張桌子,叫他們單打和平均。幫助T-SQL JOIN?

光棍節是:

PersonID (PK) 
EventID (FK) 
best 
worldRank 

平均值是:

PersonID (PK) 
EventID (FK) 
best 
worldRank 

我想這兩個表結合起來。 基本上,所得到的表應該是:

「合併是:

PersonID (PK) 
EventID(FK) 
bestSingle ('best' from Singles) 
bestAverage ('best' from Averages) 
worldRankSingle ('worldRank' from Singles) 
worldRankAverage ('worldRank' from Averages)" 

這就是我現在所擁有的

SELECT RanksAverage.[personId], 
RanksAverage.[eventId], 
RanksAverage.[best] AS 'averageBest', 
RanksAverage.[worldRank] AS 'averageRank', 
RanksSingle.best AS 'singleBest', 
RanksSingle.worldRank AS 'singleRank' 

FROM [cubing].[dbo].[WCA_export_RanksSingle] AS RanksSingle 

JOIN [cubing].[dbo].[WCA_export_RanksAverage] AS RanksAverage 
ON RanksAverage.personId = RanksSingle.personId 

我使用的是SQL Server 2012中,順便說一句。

+0

你目前的努力有什麼不滿意的地方?看起來像一個很好的查詢給我。它出什麼問題了?那就是 - 你到底需要什麼幫助? – Oded 2013-03-09 18:41:25

+0

它最終有200個具有相同PersonID的記錄。 – statue 2013-03-09 18:42:10

+0

請不要使用'AS'alias''語法。必要時使用'AS [別名]'語法,但在這種情況下,這些別名不需要以任何方式分隔。使用單引號替代別名* plus *使它們看起來像字符串文字。 – 2013-03-09 18:42:43

回答

2

看起來像是你從JOIN丟失的唯一東西是event的第二個標準:

JOIN [cubing].[dbo].[WCA_export_RanksAverage] AS RanksAverage 
ON RanksAverage.personId = RanksSingle.personId 
AND RanksAverage.eventId = RanksSingle.eventId 

這只是一個假設,因爲我們不知道您的數據是什麼樣子。

+0

看起來像一個合理的假設,雖然不知道OP是想要擺脫什麼,但它只是 - 一個假設。 – Oded 2013-03-09 18:45:02

+0

@Oded非常真實。 – Kermit 2013-03-09 18:45:45

+0

哇,這很尷尬! 我之前進行了雙連接。我不知道你可以和加入...謝謝你! – statue 2013-03-09 18:45:56