2014-05-03 167 views
0

我有一個奇怪的問題與MySQL sum()結果。奇怪SUM()結果

SELECT `users_limits`.times, SUM(l.times) AS `result` 
    FROM `users_limits` 
     INNER JOIN `users_limits` AS `l` 
     INNER JOIN `vacation_types` AS `v` ON l.id_vacation_type = v.id_vacation_type 
    WHERE l.year =2014 AND v.type =0 

該查詢給我的結果是: 次= 10; 結果= 30;

但是也應該給我結果10太多,因爲我只有一個記錄在我的分貝,與這些條件。

+1

你會介意分享你的表和數據http://sqlfiddle.com –

+0

什麼是加盟點'users_limits'本身,沒有連接條件?你期望從一個沒有'GROUP BY'的聚合函數查詢中得到什麼? – dasblinkenlight

+0

看起來你在查詢中缺少GROUP BY' – Uriil

回答

0

您需要GROUP BY。嘗試添加此

GROUP BY l.times 

WHERE l.year =2014 AND v.type =0 
    GROUP BY l.times 

編輯 - :

SELECT `users_limits`.times, SUM(l.times) AS `result` 
    FROM `users_limits` l 
    INNER JOIN `vacation_types` AS `v` ON l.id_vacation_type = v.id_vacation_type 
    WHERE l.year =2014 AND v.type =0 
    GROUP BY l.times 
+0

Count gimme result = 1;我想統計時間欄的內容。 –

+0

我猜那不是這種情況,因爲OP說只有一條記錄,但通過使用連接OP得到的是跨產品,所以結果是3倍,因爲他預期 –

+0

也許你是對的。計數返回我3,它刪除連接時效果很好。爲什麼?我該如何修復它? –