【发布时间】:2013-03-27 10:28:24
【问题描述】:
我有这些表:
赫拉奇:
- IDHrace (int)
- Jmeno (varchar)
Ucast_Zapas:
- ID_Hrace_zapas (int)
- 白兰地(整数)
例如,我想要 SUM 多少“白兰地”WHERE ID_Hrace_zapas=IDHrace and Jmeno="karel"...
这是我的代码:
SELECT
SUM(Ucast_Zapas.Branky), Ucast_Zapas.ID_Hrace_zapas, Hraci.Jmeno,Hraci.IDHrace
FROM
Hraci, Ucast_Zapas
WHERE
(Ucast_Zapas.ID_Hrace_zapas=Hraci.IDHrace) AND (Hraci.Jmeno='smajlik');
不知道,问题出在哪里,SQl写这个错误:
列“Ucast_Zapas.ID_Hrace_zapas”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
【问题讨论】:
-
经验法则:在 SQL 中使用聚合函数时,始终在非聚合列(也就是普通列)上使用 GROUP BY。在这种情况下,您很可能需要跳过选择 ID,因为这样您就可以让 SUM() 函数无法使用
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已随 ANSI-92 SQL 标准(超过 20 年前)
标签: sql sql-server sum