有4个表 库存表,出库表,入库表,报废表库存表
物料编号 数量
a 100
b 200
c 120
d 320
e 400
出库表
物料编号 数量
a 10
e 40
入库表
物料编号 数量
a 20
b 30
e 40 报废表
物料编号 数量
c 50
要求统计如下
物料编号 入库数 出库数 报废数 库存数
a 20 10 0 100
b 30 0 0 200
c 0 0 50 120
d 0 0 0 320
e 40 40 0 400
物料编号 数量
a 100
b 200
c 120
d 320
e 400
出库表
物料编号 数量
a 10
e 40
入库表
物料编号 数量
a 20
b 30
e 40 报废表
物料编号 数量
c 50
要求统计如下
物料编号 入库数 出库数 报废数 库存数
a 20 10 0 100
b 30 0 0 200
c 0 0 50 120
d 0 0 0 320
e 40 40 0 400
from 库存表 a
left join 入库表 b on a.物料编号 = b.物料编号
left join 出库表 c on a.物料编号 = c.物料编号
left join 报废表 d on a.物料编号 = d.物料编号
c.数量 as 入库数 ,
b.数量 as 出库数 ,
d.数量 as 报废数,
isnull(a.数量,0)+isnull(c.数量,0)-isnull(b.数量,0)-isnull(d.数量,0) as 库存数
from 库存表 a
left join 出库表 b on a.物料编号=b.物料编号
left join 入库表 c on a.物料编号=c.物料编号
left join 报废表 d on a.物料编号=d.物料编号
select a.物料编号,isnull(b.数量,0) 入库数,isnull(c.数量,0) 出库数,isnull(d.数量,0) 报废数,a.数量 库存数
from 库存表 a
left join 入库表 b on a.物料编号 = b.物料编号
left join 出库表 c on a.物料编号 = c.物料编号
left join 报废表 d on a.物料编号 = d.物料编号
库存表 as a join 入库表 as b on a.物料编号 = b.物料编号
join 出库表 as c on a.物料编号 = c.物料编号
join 报废表 as d on a.物料编号 = d.物料编号
库存表 as a left join 入库表 as b on a.物料编号 = b.物料编号
left join 出库表 as c on a.物料编号 = c.物料编号
left join 报废表 as d on a.物料编号 = d.物料编号
--库存表
create TABLE kuTB(物料编号 NVARCHAR(5) , 数量 INT)
INSERT INTO kuTB
SELECT 'a', 100
UNION ALL SELECT 'b', 200
UNION ALL SELECT 'c', 120
UNION ALL SELECT 'd', 320
UNION ALL SELECT 'e', 400 --出库表
create TABLE chuTB(物料编号 NVARCHAR(5) , 数量 INT)
INSERT INTO chuTB
SELECT 'a', 10
UNION ALL SELECT 'e', 40
--入库表
create TABLE ruTB(物料编号 NVARCHAR(5) , 数量 INT)
INSERT INTO ruTB
SELECT 'a', 20
UNION ALL SELECT 'b', 30
UNION ALL SELECT 'e', 40 --报废表
create TABLE boTB(物料编号 NVARCHAR(5) , 数量 INT)
INSERT INTO boTB
SELECT 'c', 50
select kuTB.物料编号,isnull(ruTB.数量,0) as 入库数,isnull(chuTB.数量,0) as 出库数,isnull(boTB.数量,0) as 报废数,isnull(kuTB.数量,0) as 库存数
from
kuTB
left join
ruTB on kuTB.物料编号=ruTB.物料编号
left join
chuTB on kuTB.物料编号=chuTB.物料编号
left join
boTB on kuTB.物料编号=boTB.物料编号
物料编号 入库数 出库数 报废数 库存数
----- ----------- ----------- ----------- -----------
a 20 10 0 100
b 30 0 0 200
c 0 0 50 120
d 0 0 0 320
e 40 40 0 400