【问题标题】:SQL Server : function SUM and data from more tablesSQL Server:函数 SUM 和来自更多表的数据
【发布时间】: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


【解决方案1】:
SELECT IDHrace, SUM(branky)
FROM Hraci
INNER JOIN Ucast_Zapas ON Ucast_Zapas.ID_Hrace_zapas=Hraci.IDHrace
WHERE Hraci.Jmeno='smajlik'
GROUP BY IDHrace

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多