日期:2014-05-17 浏览次数:20565 次
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 未完成