2017-07-07 25 views
0

我正在製作一個需要調用玩家在遊戲中獲得的ID,名稱和總收入的記分卡。每輪由用戶的ID和用戶在該輪中賺取的錢存儲。用戶名和玩家名稱存儲在稱爲「US_MASTER」的單獨表格中。遊戲中有多個回合。最後,我應該顯示記分卡,其中顯示每個人的身份證,姓名和金錢總和。隨着我的嘗試,我只能使用group by在單個select語句中帶入id和總分。我無法撥打兩個編號和名稱,因爲它拋出了一個錯誤如何在SQL SERVER中使用聚合函數時顯示ID和名稱

「TESTDB.dbo.USER_MASTER.GAMER_NAME」,因爲它不是在聚合函數或GROUP BY包含在選擇列表中無效條款。

有沒有辦法在同一個select語句中總結和顯示id和name? 我使用的查詢是:

SELECT x.GAMER_CODE as "USER_ID", y.GAMER_NAME as "USERNAME", 
sum(x.Round_Score) as TOTAL_SCORE 
FROM [TESTDB].[dbo].[Game_Details] x 
INNER JOIN TESTDB.dbo.USER_MASTER y 
on x.GAMER_CODE=y.GAMER_CODE 
Group By x.GAMER_CODE; 

編輯:我使用的是SQL Server 2012的

+0

試着在SELECT語句中圍繞GAMER_NAME放一個MAX()......假設玩家代碼與玩家代碼是1:1,它們都是一樣的,所以只需選擇最大值。完成並完成。 – pmbAustin

回答

0

因爲由ID你組,你應該放心地能夠僅僅通過太的名字添加到組。那對你有用嗎?

SELECT x.GAMER_CODE as "USER_ID", y.GAMER_NAME as "USERNAME", 
sum(x.Round_Score) as TOTAL_SCORE 
FROM [TESTDB].[dbo].[Game_Details] x 
INNER JOIN TESTDB.dbo.USER_MASTER y 
    on x.GAMER_CODE=y.GAMER_CODE 
Group By x.GAMER_CODE, y.GAMER_NAME; 
+0

是的,的確解決了我的問題。我從來沒有想過,我可以在兩張不同的表中將字段分組。教程中沒有涵蓋這些場景。非常感謝你的正確思想。 –