我打我的大腦對這一SQL Server查詢左加入,SUM和GROUP BY,我很難過!
我有3個SQL Server 2005的表
userawards:
id, awardamount, userid, dateawarded, awardtypeid
用戶:
id, firstname, lastname
awardtypes:
id, title
因此,如果awards
表有行
1, 300.00, 3, 01-01-2011, 1
2, 125.00, 3, 01-05-2011, 1
3, 50.00, 2, 01-05-2011, 2
用戶錶行
1, john, smith
2, mark, smith
3, bob, smith
獎勵類型
1, cash
2, prize
,我所要的輸出類似於至這
bob smith, 425.00, cash
mark smith, 50, prize
等等等等
用戶可以擁有多個獎項,結果需要顯示獨特的用戶,但有總獎金額。此外,還需要有2個連接,一個用於獲取用戶表中的用戶名/最後一個用戶表和獎勵類型標題。
所以我的查詢看起來像這樣(我知道這是行不通的)
SELECT id, userid, awardtypeid, SUM(awardamount)
FROM awards a
LEFT JOIN userinfo ui ON ui.userid = a,userid
LEFT JOIN awardtypes ON awardtypesid = a.awardtypeid
GROUP BY userid
這甚至可能嗎?
如果用戶擁有不同類型的獎勵多,應該是什麼預期的輸出? – Thomas 2011-05-03 17:23:55
這將有助於向我們展示一些樣本輸入和預期輸出。另外,什麼版本的SQL Server? – Thomas 2011-05-03 17:24:38
你有一個,而不是。在a中,userid – extraneon 2011-05-03 17:31:59