本帖最后由 lighting_pig 于 2015-03-10 18:27:36 编辑

解决方案 »

  1.   

    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)类似这样
      

  2.   

    谢谢ky_min,原来sum里面可以套case when,已经搞定