使用聚合函数时出错。希望你们可以帮助我,我解释了下面的情况。
在足球/足球比赛中,玩家在第二张黄牌后获得红牌。查询 qry1TwiceYellow 会显示有两张黄牌的玩家的唯一ID。查询在下面写下并且工作正常。
SELECT Player_ID FROM (SELECT Player_ID, Count(ID) AS Total FROM YellowCards WHERE Game_ID=29 AND HomeOrAway=1 GROUP BY Player_ID) WHERE Total=2;
现在我想要检索有关最后一张卡的一些信息:
我为此写了以下查询,但这会导致错误(在查询下方)。
SELECT Y.ID, Y.Player_ID, MAX(Y.Minute) As LastYellow
FROM qry1TwiceYellow As q
INNER JOIN YellowCards As Y
ON q.Player_ID = Y.Player_ID
WHERE Y.Game_ID=29 AND Y.HomeOrAway=1
GROUP BY Y.Player_ID;
Your query does not include the specified expression 'ID' as part of an aggregate function.
我尝试了以下解决方案:
我该如何解决这个问题?
Thnx提前, 克里斯
答案 0 :(得分:0)
这是一个查询,通过计算同一游戏和玩家以前的牌数来选择游戏的所有第二张黄牌:
SELECT Y1.ID, Y1.Player_ID, Y1.Minute
FROM YellowCards Y1
WHERE Y1.Game_ID=29 AND Y1.HomeOrAway=1
AND (
SELECT COUNT(*)
FROM YellowCards Y2
WHERE Y1.Game_ID = Y2.Game_ID AND Y1.HomeOrAway = Y2.HomeOrAway AND Y1.Player_ID = Y2.Player_ID AND Y1.Minute > Y2.Minute
) = 1;