2013-03-27 51 views
0

我有這些表:SQL服務器:SUM函數和數據從多個表

Hraci

  • IDHrace(INT)
  • Jmeno(VARCHAR)

Ucast_Zapas

  • ID_Hrace_zapas(INT)
  • branky(INT)

我想SUM

這多少 「branky」 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寫這個錯誤:

Column 'Ucast_Zapas.ID_Hrace_zapas' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

+0

經驗法則:當在SQL中使用聚合函數時,總是在非聚合列(也就是普通列)上使用GROUP BY。在這種情況下,你很可能需要跳過選擇ID,因爲那麼你可以不用再玩SUM()函數 – Najzero 2013-03-27 10:31:27

+0

[踢壞壞習慣:使用舊式JOIN](http://sqlblog.com/ blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - 舊式*逗號分隔的table * style列表已停止使用ANSI- ** 92 ** SQL標準(超過** 20年前**) – 2013-03-27 10:32:39

回答

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 
+0

非常感謝,它的工作! :) – koky 2013-03-27 12:06:28