MySQL ошибка при получении итоговых значений между двумя датами и другим фильтром - PullRequest
0 голосов
/ 31 января 2020

Я хочу получить значения SUM из таблицы между двумя датами, но у меня есть и другой фильтр. Я получаю синтаксическую ошибку и не могу найти, что не так. Это предложение SQL:

SUM(IF((date BETWEEN '2020-01-01 00:00:00' AND '2020-01-31 23:59:59') AND ql=1),total,0) AS t1q1,
SUM(IF((date BETWEEN '2020-01-01 00:00:00' AND '2020-01-31 23:59:59') AND ql=2),total,0) AS t1q2,
SUM(IF((date BETWEEN '2019-12-01 00:00:00' AND '2019-12-31 23:59:59') AND ql=1),total,0) AS t2q1,
SUM(IF((date BETWEEN '2019-12-01 00:00:00' AND '2019-12-31 23:59:59') AND ql=2),total,0) AS t2k2
FROM myTable 
GROUP BY productID
ORDER BY productID ASC

1 Ответ

0 голосов
/ 31 января 2020
SELECT
SUM(case when date>='2020-01-01' and date<'2020-02-01' AND ql=1 then total else 0 end) t1q1,
SUM(case when date>='2020-01-01' and date<'2020-02-01' AND ql=2 then total else 0 end) t1q2,
SUM(case when date>='2019-12-01' and date<'2020-01-01' AND ql=1 then total else 0 end) t2q1,
SUM(case when date>='2019-12-01' and date<'2020-01-01' AND ql=2 then total else 0 end) t2q2
FROM myTable 
GROUP BY productID
ORDER BY productID ASC
...