尝试以下查询:
select
rmname,
sum(CASE WHEN MONTH(applicationDate) = 1 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as january,
sum(CASE WHEN MONTH(applicationDate) = 2 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as February,
sum(CASE WHEN MONTH(applicationDate) = 3 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as March,
sum(CASE WHEN MONTH(applicationDate) = 4 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as April,
sum(CASE WHEN MONTH(applicationDate) = 5 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as May,
sum(CASE WHEN MONTH(applicationDate) = 6 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as June,
sum(CASE WHEN MONTH(applicationDate) = 7 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as July,
sum(CASE WHEN MONTH(applicationDate) = 8 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as August,
sum(CASE WHEN MONTH(applicationDate) = 9 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as September,
sum(CASE WHEN MONTH(applicationDate) = 10 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as October,
sum(CASE WHEN MONTH(applicationDate) = 11 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as November,
sum(CASE WHEN MONTH(applicationDate) = 12 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as December
from los_ext
group by RMNAME,MONTH(applicationDate)
你可以在Pivot Table上收集一些知识。
注意:上述查询将汇总相同月份的数据,虽然月份可能属于不同年份。
For example 2015 February and 2014 February will be summed up to the same slot.
为了避免这种情况,您可以添加date range in where clause like you did。
因此,在 where 子句中添加该日期范围,查询将如下所示:
select
rmname,
sum(CASE WHEN MONTH(applicationDate) = 1 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as january,
sum(CASE WHEN MONTH(applicationDate) = 2 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as February,
sum(CASE WHEN MONTH(applicationDate) = 3 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as March,
sum(CASE WHEN MONTH(applicationDate) = 4 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as April,
sum(CASE WHEN MONTH(applicationDate) = 5 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as May,
sum(CASE WHEN MONTH(applicationDate) = 6 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as June,
sum(CASE WHEN MONTH(applicationDate) = 7 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as July,
sum(CASE WHEN MONTH(applicationDate) = 8 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as August,
sum(CASE WHEN MONTH(applicationDate) = 9 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as September,
sum(CASE WHEN MONTH(applicationDate) = 10 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as October,
sum(CASE WHEN MONTH(applicationDate) = 11 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as November,
sum(CASE WHEN MONTH(applicationDate) = 12 THEN cast (PROPOSEDLIMIT as int) ELSE 0 END) as December
from los_ext
WHERE applicationdate between '01-01-2016' and '31-12-2016'
group by RMNAME,MONTH(applicationDate)