一个列变行的问题!!!急!!
数据如下:
商品名   分店    数量
1        50        52          40        203         30        30变成
商品名      50(分店)    40 (分店)   30 (分店)     
1             5
           
2                       203                                    30不知道怎样写??????????????

解决方案 »

  1.   

    create table ta(商品名 int,  分店 int,   数量 int)
    insert ta select 1,        50,        5
    union all select 2,        40,        20
    union all select 3,        30,        30declare @sql varchar(1000)
    set @sql=''
    select @sql=@sql+',['+rtrim(分店)+'分店'+']=max(case 分店 when '+rtrim(分店)+' then rtrim(数量) else '''' end)'
    from ta group by 分店 order by 分店 desc
    set @sql='select 商品名'+@sql+' from ta group by 商品名'
    exec (@sql)
    商品名         50分店         40分店         30分店
    ----------- ------------ ------------ ------------
    1           5                         
    2                        20           
    3                                     30(3 行受影响)
      

  2.   

    加括号:
    declare @sql varchar(1000)
    set @sql=''
    select @sql=@sql+',['+rtrim(分店)+'(分店)'+']=max(case 分店 when '+rtrim(分店)+' then rtrim(数量) else '''' end)'
    from ta group by 分店 order by 分店 desc
    set @sql='select 商品名'+@sql+' from ta group by 商品名'
    exec (@sql)
    商品名         50(分店)       40(分店)       30(分店)
    ----------- ------------ ------------ ------------
    1           5                         
    2                        20           
    3                                     30(3 行受影响)