我的SQL查询SUM分组有什么问题

时间:2017-12-16 12:58:58

标签: sql group-by sum

您好我有一个SQL查询,它不计算我的一行。这被称为花费,你可以在小提琴中看到它。我的代码出了什么问题? 我只需要基本表

in_array

我创建了小提琴http://sqlfiddle.com/#!9/3623b1/2

你能帮我吗?

以下是查询:

Month  ID GOT SPEND
1      1  100 50
2      1  500 200
1      2  200 50

1 个答案:

答案 0 :(得分:1)

尝试使用:您已经在子查询中使用了一个月,然后再次使用MONTH从联接中的月份检索,以便它返回NULL而不是与keliones_lapas

的任何月份匹配
SELECT 
    keliones_lapas.Vairuot_Id, 
    MONTH(keliones_lapas.Data_darbo), 
    SUM(keliones_lapas.uzdarbis) AS Got, 
    COALESCE(Suma, 0) AS Spend, 
    (SUM(keliones_lapas.uzdarbis) - COALESCE(Suma, 0)) Total
FROM keliones_lapas
    LEFT JOIN (
    SELECT Vairuotas, 
           MONTH(Data_islaidu) AS Data_islaidu, --It's already in MONTH
           SUM(Suma) AS Suma 
   FROM islaidos 
   GROUP BY Vairuotas, MONTH(Data_islaidu)) islaidos 
   ON keliones_lapas.Vairuot_Id = islaidos.Vairuotas 
   AND MONTH(keliones_lapas.Data_darbo) = Data_islaidu --No need to use MONTH or `vice versa`
GROUP BY keliones_lapas.Vairuot_Id, MONTH(keliones_lapas.Data_darbo), Suma
ORDER BY keliones_lapas.Vairuot_Id, MONTH(keliones_lapas.Data_darbo)