有一个表,如下字段:
名称,值,年,月现在想得到年报的数据,即按名称显示某年1-12月的数据,即:
名称,1月值,2月值,3月值......如果实现最简单呢?

解决方案 »

  1.   

    declare @sql varchar(8000)
    set @sql='select 名称'
    select @sql=@sql+',['+[月]+']=sum(case 月 when '''+月+''' then 值 else 0 end)' from tb group by 月
    exec(@sql+' from tb group by 名称')
    --动态的
      

  2.   

    select 名称,
           [1月]=sum(case 月 when '1月' then 值 else 0 end),
           [2月]=sum(case 月 when '2月' then 值 else 0 end),
            .
            .
            .
           [12月]=sum(case 月 when '12月' then 值 else 0 end)
    from tb
    group by 名称
    --静态的