declare @nian char (4)
set @nian='2004'select sszt,
sum(case when zxyear=@nian and zxmonth>='01' and <='03' then d31 else 0 end) as 第一季度数据,
sum(case when zxyear=@nian and zxmonth>='04' and <='06' then d31 else 0 end) as 第二季度数据,
sum(case when zxyear=@nian and zxmonth>='07' and <='09' then d31 else 0 end) as 第三季度数据,
sum(case when zxyear=@nian and zxmonth>='10' and <='12' then d31 else 0 end) as 第四季度数据from #ZWDATA_ZXHS
group by sszt

解决方案 »

  1.   

    declare @nian char (4)
    set @nian='2004'select sszt,
    sum(case when zxyear=@nian and zxmonth>='01' and zxmonth<='03' then d31 else 0 end) as 第一季度数据,
    sum(case when zxyear=@nian and zxmonth>='04' and zxmonth<='06' then d31 else 0 end) as 第二季度数据,
    sum(case when zxyear=@nian and zxmonth>='07' and zxmonth<='09' then d31 else 0 end) as 第三季度数据,
    sum(case when zxyear=@nian and zxmonth>='10' and zxmonth<='12' then d31 else 0 end) as 第四季度数据from #ZWDATA_ZXHS
    group by sszt
      

  2.   

    --横向统计显示
    SELECT SSZT,ZXYEAR
    ,[第一季度]=SUM(CASE WHEN ZXMONTH BETWEEN 1 AND 3 THEN D31 ELSE 0 END) 
    ,[第二季度]=SUM(CASE WHEN ZXMONTH BETWEEN 4 AND 6 THEN D31 ELSE 0 END) 
    ,[第三季度]=SUM(CASE WHEN ZXMONTH BETWEEN 7 AND 9 THEN D31 ELSE 0 END) 
    ,[第四季度]=SUM(CASE WHEN ZXMONTH BETWEEN 11 AND 12 THEN D31 ELSE 0 END) 
    FROM #ZWDATA_ZXHS
    GROUP BY SSZT,ZXYEAR
      

  3.   

    --纵向统计显示SELECT SSZT,ZXYEAR
    ,季度='第'+substring('一二三四',(ZXMONTH-1)/3+1,1)+'季度'
    ,D31=SUM(D31)
    FROM #ZWDATA_ZXHS
    GROUP BY SSZT,ZXYEAR
    ,'第'+substring('一二三四',(ZXMONTH-1)/3+1,1)+'季度'
      

  4.   

    有那么复杂吗?按SSZT,ZXYEAR和季度分组就是了:SELECT SSZT,ZXYEAR,floor((ZXMONTH-1)/3)+1,SUM(D31)
     FROM #ZWDATA_ZXHS GROUP BY SSZT,ZXYEAR,floor((ZXMONTH-1)/3)+1