2011-02-22 94 views
2

我有此信息的桌牌游戏:问题与GROUP BY语句(SQL)

Id_Game Id_Player1 Id_Player2 Week 
-------------------------------------- 
1211  Peter  John  2 
1215  John  Louis  13 
1216  Louis  Peter  17 

我想获得上周列表时,每个球员发挥,和游戏的数量,这应该是这样的:

Id_Player Week numberGames 
----------------------------- 
Peter  17 2 
John  13 2 
Louis  17 2 

而是我得到这个(彼得前通知)

Id_Player Week numberGames 
----------------------------- 
Peter  2  2 
John  13 2 
Louis  17 2 

我做的是这样的:

谁能帮我找到错误了吗?

+0

对于什么数据库?你似乎不理解聚合函数是如何工作的。 –

+2

如果第二个“彼得”与第一个“彼得”不一样会怎样? –

+1

@Ardman对于数据库来说,它们与Peter相同,因为它们仅由GROUP BY返回一次。 对于应用程序,也许Id_Players是独一无二的。 – tiago2014

回答

7

Week列的数据类型是什么?如果Week的数据类型是varchar,你会得到这种行为。

+0

+1好点。代码看起来不错,否则。编辑:我们会有约翰和第2周,但不是? – gbn

+0

对不起,我没有意识到我已经创建了WEEK作为你所说的VARCHAR。现在作为一个整数,它完美的作品。谢谢你们! – Arturo