也许有一个简单的修复方法,但是我无法搞清楚。我会尽我所能解释我的情况。按日期排列的MySQL结果
我正在开发一个MySQL查询,它将返回日期范围内(A列中)和日期范围-1年(B列中)的结果。我需要按月份将结果分组,而不是按年份分组。所以,我想有这样的事情:
2014 2013 ---------------- 01-01 6 8 01-03 7 0 01-04 4 1 01-08 0 13 01-21 11 7
在我目前的查询(下)我得到(如果因ELSE)这样的结果:
2014 2013 ---------------- 01-01 0 8 01-03 7 0 01-04 0 1 01-08 0 13 01-21 0 7
QUERY:
SELECT
DATE_FORMAT(table.date, '%e.%c.') AS date,
(CASE WHEN DATE(table.date) BETWEEN '2014-01-01' AND '2014-02-01' THEN ROUND(SUM(table.field), 2) ELSE 0 END) AS field_2014,
(CASE WHEN DATE(table.date) BETWEEN '2013-01-01' AND '2013-02-01' THEN ROUND(SUM(table.field), 2) ELSE 0 END) AS field_2013
FROM table
WHERE
(DATE(table.date) BETWEEN '2014-05-01' AND '2014-06-01' OR DATE(table.date) BETWEEN '2013-05-01' AND '2013-06-01')
GROUP BY
DATE_FORMAT(table.date, '%c.%e.')
我应该在ELSE中放什么,我该如何实现这个功能?
谢谢你的时间
尝试使用总和外,这是'sum(case(..))'的情况下' – senK 2014-09-01 12:04:40
thnx为您的帮助senk!它确实让我走上了正确的道路 – kiflica 2014-09-01 12:55:27