表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不支持此函数,所以没试验!!