F1     F2       F3                F4        单利     本期       总利
20040326 车间 外销总计          利润 226.1    884923.84   Null
20040326 车间 内销合计          利润 384.45   123         Null
20040326 车间 耐火砖合计 利润 1594.9  404974      23443

解决方案 »

  1.   

    select  F1 ,    F2 ,     F3    ,    F4 ,    
    (case f5 when '单利' then F6 end) 单利,
    (case f5 when '本期' then F6 end) 本期,
    (case f5 when '总利' then F6 else null  end) 总利
    FROM tbl
      

  2.   

    sorry!select  F1 ,    F2 ,     F3    ,    F4 ,    
    max(case f5 when '单利' then F6 end) 单利,
    max(case f5 when '本期' then F6 end) 本期,
    max(case f5 when '总利' then F6 else null  end) 总利
    FROM tbl
    group  by 
    F1 ,    F2 ,     F3    ,    F4
      

  3.   

    to:welyngj(平平淡淡) 
    我可能没有说清楚:f5中的数据是没有规律可能不叫"单利","本期","总利"
      

  4.   

    也很简单,have a try:没有测试:
    declare @sql varchar(8000)
    set @sql = 'select F1 ,    F2 ,     F3    ,    F4'
    select @sql = @sql + ',
    max(case f5 when '''+ProductType+''' then f6 else null end) ['+ProductType+']'
    from (select distinct f5 from 表) as a
    select @sql = @sql+' from 表 group by F1 ,    F2 ,     F3    ,    F4'
    exec(@sql)