商品库存表: 仓库编号 商品编号 数量
CangKuID ProductID Quantity
1 3 50
1 3 100
2 4 60
2 4 150
商品表: 商品编号 商品名称 单位
3 电脑 台
4 电视 台
现在想实现显示成:
商品名称 单位 数量
电脑 台 150
电视 台 210
create table 商品库存表(CangKuID int,ProductID int,Quantity int)
insert into 商品库存表
select 1,3,50
union all select 1,3,100
union all select 2,4,60
union all select 2,4,150
create table 商品表(商品编号 int,商品名称 varchar(20),单位 varchar(6))
insert into 商品表
select 3,'电脑','台'
union all select 4,'电视','台'
select 商品名称,
单位,
商品库存表.Quantity as '数量'
from 商品表
left join (select ProductID,sum(isnull(Quantity,0)) as Quantity from 商品库存表 group by ProductID) 商品库存表 on 商品库存表.ProductID=商品表.商品编号
/*
商品名称 单位 数量
-------------------- ------ -----------
电脑 台 150
电视 台 210
(所影响的行数为 2 行)
*/
select a.productname,a.unit,b.Quantity
from Product a -- NO1
right join
(select ProductID,sum(isnull(Quantity,0)) as Quantity from CangKuStock group by ProductID) b -- NO3
on b.ProductID=a.Productid