我有一个表
A,1,2,3,4,5,6,7,8,9,10,11,12,1331
Aa,1,2,3,4,5,6,0,0,0,0,0,0,0,0,0,0,100,0,0100,0……..
……………
怎么变成:  日期是上表的1~~~~~~~~31的列名,数量是下面对应的哪个数量。
日期,A,数量
1,   Aa,1
2,   Aa,2
3,   Aa,3
4,   Aa,4
5,   Aa,5
6,   Aa,6
………..
也就是行转列反过来,请各位老大指教指教啊。
解决了一定给分的!!先谢谢了

解决方案 »

  1.   

    用动态sql试试, 请参考
    http://topic.csdn.net/u/20071219/15/ad2726e6-cb41-4e8f-bc55-1fd8ad3e0289.html
      

  2.   

    我有一个表 
    A,1,2,3,4,5,6,7,8,9,10,11,12,1331 
    Aa,1,2,3,4,5,6,0,0,0,0,0,0,0,0,0,0,100,0,0100,0…….. 
    …………… 
    怎么变成:     日期是上表的1~~~~~~~~31的列名,数量是下面对应的哪个数量。 
    日期,A,数量 
    1,       Aa,1 
    2,       Aa,2 
    3,       Aa,3 
    4,       Aa,4 
    5,       Aa,5 
    6,       Aa,6 select A,
      sum(case 日期 when 1 then 数量 else 0 end) [1],
      sum(case 日期 when 2 then 数量 else 0 end) [2],
      sum(case 日期 when 3 then 数量 else 0 end) [3],
      ...
      sum(case 日期 when 31 then 数量 else 0 end) [31]
    from tb
    group by A