ORACLE列转行的问题!

表1
  备件名        仓库名      数量1      数量2
    B1          C1        1          2
    B2          C2        1          2
    B1          C3        1          2
    B3          C1        1          2
    B2          C2        1          2
    B3          C3        1          2

变成表
  备件名            C1                C2              C3   
    B1        数量1,数量2      数量1,数量2      数量1,数量2
    B2        数量1,数量2      数量1,数量2      数量1,数量2
    B3        数量1,数量2      数量1,数量2      数量1,数量2

实际效果是这样的,但是这个是显示效果,SQL查询出来只要求让备件名全部唯一,仓库名唯一且作为列头就可以了,


最好是不用存储过程的,由SQL语句搞定,如果实在没办法,我再用存储过程

哦 , 那我就不会喽。静待高手回答了!!

select 备件名,sum(case when 仓库名='c1' then concat(数量1,',',数量2) end) C1,
sum(case when 仓库名='c2' then concat(数量1,',',数量2) end) C2,
sum(case when 仓库名='c3' then concat(数量1,',',数量2) end) C3

from yourtable
group by 备件名;
你试试吧 我这里没有Oracle环境,在mysql测试的;在Oracle里面应该也可以使用decode 但是mysql不支持此函数,所以没试验!!