一个关于行列处理的例子

create table 货品基础资料表 

货品编码 int not null
货品名称 char(10null 

 
insert into 货品基础资料表 
select 001,'酒' 
union 
SELECT 002,'烟' 
 
 
create table 主表 

仓库编号 int not null
仓库名称 char(10null 

 
INSERT INTO 主表 
SELECT 1,'一号仓库' 
UNION 
SELECT 2,'二号仓库' 
create table 从表 

仓库编号 INT NOT NULL
货品编码 INT NOT NULL
数量 INT NULL 

 
INSERT INTO 从表 
SELECT 1,001,3 
UNION 
SELECT 1,002,5 
UNION 
SELECT 2,001,6 
UNION 
SELECT 2,001,1 
SELECT 货品基础资料表.货品编码,货品基础资料表.货品名称,一号仓库=ISNULL(SUM(CASE T1.仓库编号 WHEN 1 THEN 数量 ELSE 0 END),0),  
 
     二号仓库=ISNULL(SUM(CASE T1.仓库编号 WHEN 2 THEN 数量 ELSE 0 END),0
FROM  货品基础资料表 
RIGHT JOIN (SELECT 货品编码,仓库编号,数量=SUM(数量) FROM 从表 GROUP BY 货品编码,仓库编号) T1 ON T1.货品编码=货品基础资料表.货品编码 
GROUP BY 货品基础资料表.货品编码,货品基础资料表.货品名称 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值