假设一个表有字段id,datekey,value
datekey存的是20140101之类的时间(YYYYMMDD),int型,一个id因为时间变化会有多条值,value是数值类型
然后我想统计每个id每一年每一个月的年度累计值,比如如果是1月就是1月+起来,2月就把1月+2月,如果是12月就是从1月+到12月了,下一年不会加前一年的
------解决思路----------------------
SELECT id类似这样
,SUM(CASE WHEN RIGHT(datekey,2)<=1 THEN value END)[1月]
,SUM(CASE WHEN RIGHT(datekey,2)<=2 THEN value END)[2月]
,SUM(CASE WHEN RIGHT(datekey,2)<=3 THEN value END)[3月]
,SUM(CASE WHEN RIGHT(datekey,2)<=4 THEN value END)[4月]
,SUM(CASE WHEN RIGHT(datekey,2)<=5 THEN value END)[5月]
,SUM(CASE WHEN RIGHT(datekey,2)<=6 THEN value END)[6月]
,SUM(CASE WHEN RIGHT(datekey,2)<=7 THEN value END)[7月]
,SUM(CASE WHEN RIGHT(datekey,2)<=8 THEN value END)[8月]
,SUM(CASE WHEN RIGHT(datekey,2)<=9 THEN value END)[9月]
,SUM(CASE WHEN RIGHT(datekey,2)<=10 THEN value END)[10月]
,SUM(CASE WHEN RIGHT(datekey,2)<=11 THEN value END)[11月]
,SUM(CASE WHEN RIGHT(datekey,2)<=12 THEN value END)[12月]
FROM(SELECT id,LEFT(datekey,6)datekey,SUM(value)value FROM TB GROUP BY id,LEFT(datekey,6))T
GROUP BY id,LEFT(datekey,4)