我想在第一列中有名称,但出现错误。当我让 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
提前感谢您的帮助
远野
您应该将其添加到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
试试这个:
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
使用时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