您好我有一个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
答案 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)