在一个表中: 部门  物料类别  数量  金额现在做一个报表,报表格式如下:
              
            类别A       类别B       类别C  
 部门1       500         800         600 部门2       567        ...... 
 部门3 
 
中间的数字500是 部门1的类别A的金额

解决方案 »

  1.   

    declare @sql varchar(8000)
    select @sql=isnull(@sql+',','')
     +'sum(case when 物料类别='''+物料类别+''' then 金额 else 0 end) as ['+物料类别+']'
    from
    (select distinct 物料类别 from tb) texec ('select 部门,'+@sql+' from tb group by 部门')
      

  2.   

    select * from 
    (select * from yourtable) a
    pivot
    (max(数量) for 物料类别 in('类别A','类别B','类别C'))
      

  3.   

    select * from 
        (select * from yourtable) a
    pivot
        (max(数量) for 物料类别 in('类别A','类别B','类别C'))