日期:2014-05-17 浏览次数:20452 次
SELECT * FROM 订单表 WHERE NOT EXISTS(SELECT 订单号 FROM 生产进度表 WHERE 工序已生成数量<>订单表.订单数量)
------解决方案--------------------
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = '订单表') BEGIN DROP TABLE 订单表 END GO CREATE TABLE 订单表 ( 订单号 VARCHAR(10), 订单数量 INT ) GO INSERT INTO 订单表 SELECT 'd1', 500 UNION SELECT 'd2', 800 UNION SELECT 'd3', 1000 GO IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = '生产进度表') BEGIN DROP TABLE 生产进度表 END GO CREATE TABLE 生产进度表 ( 订单号 VARCHAR(10), 工序 VARCHAR(10), 工序已生产数量 INT ) GO INSERT INTO 生产进度表 SELECT 'd1', '第1道', 500 UNION SELECT 'd1', '第2道', 500 UNION SELECT 'd1', '第3道', 500 UNION SELECT 'd2', '第1道', 800 UNION SELECT 'd2', '第2道', 200 UNION SELECT 'd2', '第3道', 0 UNION SELECT 'd2', '第4道', 500 UNION SELECT 'd2', '第5道', 300 UNION SELECT 'd3', '第1道', 0 UNION SELECT 'd3', '第2道', 200 UNION SELECT 'd3', '第3道', 1000 UNION SELECT 'd3', '第4道', 1000 GO SELECT 订单号, 订单数量, '已完成' AS 订单进度 FROM 订单表 AS A WHERE NOT EXISTS (SELECT 1 FROM 生产进度表 AS B WHERE A.订单号 = B.订单号 AND A.订单数量 <> B.工序已生产数量) UNION SELECT 订单号, 订单数量, '未完成' AS 订单进度 FROM 订单表 AS A WHERE EXISTS (SELECT 1 FROM 生产进度表 AS B WHERE A.订单号 = B.订单号 AND A.订单数量 <> B.工序已生产数量) 订单号 订单数量 订单进度 d1 500 已完成 d2 800 未完成 d3 1000 未完成