表1:table1原料编号 厂家号 数量GN2005 06 SS 200GN2005 06 BG 300FG2006 03 SS 100FD2006 01 BG 300FD2006 01 SS 260
表2:table2机台号 原料编号 数量4331 GN2005 06 4004332 FD2006 01 150 4333 FG2006 03 200 4335 GN2005 06 150表3:table3机台号 原料编号 出库量 不足数4331 GN2005 06 400 04332 FD2006 01 150 04333 FG2006 03 100 0
4335 GN2005 06 100 -50表1是库存中的信息每种相同的原料可能是不同厂家生产的,表2是生产需要用到的原料数,不管是哪个厂家生产的只要是同种原料就可以使用,怎么通过表1和表2运算得到表3中的结果???(有多个机器可以使用同一种原料的情况)
先谢谢各位了
表2:table2机台号 原料编号 数量4331 GN2005 06 4004332 FD2006 01 150 4333 FG2006 03 200 4335 GN2005 06 150表3:table3机台号 原料编号 出库量 不足数4331 GN2005 06 400 04332 FD2006 01 150 04333 FG2006 03 100 0
4335 GN2005 06 100 -50表1是库存中的信息每种相同的原料可能是不同厂家生产的,表2是生产需要用到的原料数,不管是哪个厂家生产的只要是同种原料就可以使用,怎么通过表1和表2运算得到表3中的结果???(有多个机器可以使用同一种原料的情况)
先谢谢各位了
INSERT TABLE1
SELECT 'GN2005 06','SS',200 UNION ALL
SELECT 'GN2005 06','BG',300 UNION ALL
SELECT 'FG2006 03','SS',100 UNION ALL
SELECT 'FD2006 01','BG',300 UNION ALL
SELECT 'FD2006 01','SS',260
--SELECT * FROM TABLE1CREATE TABLE TABLE2(机台号 NCHAR(4),原料编号 NVARCHAR(20),数量 INT)
INSERT TABLE2
SELECT '4331','GN2005 06',400 UNION ALL
SELECT '4332','FD2006 01',150 UNION ALL
SELECT '4333','FG2006 03',200 UNION ALL
SELECT '4335','GN2005 06',150
--SELECT * FROM TABLE2-- 假设机台号是唯一值
SELECT 机台号,
原料编号,
出库量=数量,
--(SELECT SUM(数量) FROM TABLE1 A WHERE 原料编号=B.原料编号),
不足数=
CASE WHEN
(SELECT SUM(数量) FROM TABLE1 A WHERE 原料编号=B.原料编号)
-
(SELECT SUM(数量) from TABLE2 WHERE 原料编号=B.原料编号 AND 机台号<=B.机台号)>0 THEN 0 ELSE
-------------------------------------------------------------------------------------------
(SELECT SUM(数量) FROM TABLE1 A WHERE 原料编号=B.原料编号)
-
(SELECT SUM(数量) from TABLE2 WHERE 原料编号=B.原料编号 AND 机台号<=B.机台号)
ENDFROM TABLE2 BDROP TABLE TABLE1,TABLE2
---- -------------------- ----------- -----------
4331 GN2005 06 400 0
4332 FD2006 01 150 0
4333 FG2006 03 200 -100
4335 GN2005 06 150 -50