尝试以下查询:
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子句查询看起来象下面这样:(节省一些打字,并成为ANSI SQL标准)
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)
哪个'RDBMS'实际上使用了? 'MySQL'或'SQL Server'? – 1000111
添加一些示例数据plz – TheGameiswar