(转载)SQL语句,纵列转横列

SQL语句,纵列转横列


Feed: 大富翁笔记
Title: SQL语句,纵列转横列 Author: wzmbox
Comments

sTable.db
库位 货物编号 库存数
1 0101 50
1 0102 60
1 0103 50
2 0101 90
2 0103 100
2 0111 30
3 0101 120
3 0102 110
4 0101 11

只列出表中库位为1、2、3的数据,格式如下:

货物编号 库位1 库位2 库位3
0101 50 90 120
0102 60 110
0103 50 100
0111 30
请问用一句sql语句怎么实现?

select a.货物编号,sum(b.库存数),sum(c.库存数),sum(d.库存数)
from stable a
left join (select 货物编号, 库存数 from stable where 库位=1)b on a.货物编号=b.货物编号
left join (select 货物编号, 库存数 from stable where 库位=2)c on a.货物编号=c.货物编号
left join (select 货物编号, 库存数 from stable where 库位=3)c on a.货物编号=d.货物编号
group by a.货物编号

原文地址:https://www.cnblogs.com/angelbd/p/3386635.html