我有一张桌子。
Name duration date_leave_from date_leave_to
John 1 2015-03-01 2015-03-02
Doe .5 2015-03-03 2015-03-04
Doe 1 2015-01-03 2015-01-03
Doe 1 2015-02-04 2015-02-06
我想以下列格式获取数据(基于date_leave_from和date_leave_to的计算):
Name || Jan || Feb || March || April
John || 1 || 0 || 2 || 0
Doe || 0 || 3 || 1 || 0
查询是这样的:它正在运行..但不是根据叶数计算的。
SELECT requester,
SUM(CASE WHEN MONTH(`date_leave_from`) = '1' THEN duration else 0 END) AS Jan,
SUM(CASE WHEN MONTH(`date_leave_from`) = '2' THEN duration else 0 END) AS Feb,
SUM(CASE WHEN MONTH(`date_leave_from`) = '3' THEN duration else 0 END) AS March,
SUM(CASE WHEN MONTH(`date_leave_from`) = '4' THEN duration else 0 END) AS April,
SUM(CASE WHEN MONTH(`date_leave_from`) = '5' THEN duration else 0 END) AS May,
SUM(CASE WHEN MONTH(`date_leave_from`) = '6' THEN duration else 0 END) AS Jun,
SUM(CASE WHEN MONTH(`date_leave_from`) = '7' THEN duration else 0 END) AS Jul,
SUM(CASE WHEN MONTH(`date_leave_from`) = '8' THEN duration else 0 END) AS Aug,
SUM(CASE WHEN MONTH(`date_leave_from`) = '9' THEN duration else 0 END) AS Sep,
SUM(CASE WHEN MONTH(`date_leave_from`) = '10' THEN duration else 0 END) AS Oct,
SUM(CASE WHEN MONTH(`date_leave_from`) = '11' THEN duration else 0 END) AS Nov,
SUM(CASE WHEN MONTH(`date_leave_from`) = '12' THEN duration else 0 END) AS December
FROM tbl_hr_leave_form
GROUP BY requester