我想在第一个colomn中有这个名字,但是我收到了一个错误。当我让P.name输出时,查询有效,但我看不到播放器名称。
现在我有以下查询:
SELECT P.Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Playernr
提前感谢您的帮助
ONNO
答案 0 :(得分:3)
您应该将其添加到GROUP BY
子句中。
SELECT P.Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Name,P.Playernr
答案 1 :(得分:0)
试试这个:
SELECT MAX(P.Name) as Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Playernr
或将P.Name
添加到Group BY
SELECT P.Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Name,P.Playernr
答案 2 :(得分:0)
使用GROUP BY
时,只能按列和聚合函数进行投影。删除投影列中的P.Name或在GROUP BY中添加P.Name
SELECT P.Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Playernr, P.Name
在其他RDBMS中,您的查询会产生错误。
考虑以下数据:
P.Playernr P.Name
A B
A C
A D
然后,P.Name不在GROUP BY中,该值在SELECT P.Playernr中生成。因此,您必须使用聚合函数或在GROUP BY中添加P.Name