我有一个orders
表,列出了每个作业中删除,删除和安装的部分。
--Deleted Items on a order.
DECLARE @Deleted TABLE (ID int, Item int);
INSERT INTO @Deleted (ID, Item)
VALUES (1, 12345), (2, 12345);
-- Removed Items on a order
DECLARE @Removed TABLE (ID int, Item int);
INSERT INTO @Removed (ID, Item)
VALUES(3, 12345), (4, 67891);
--Installed items on a order
DECLARE @Installed TABLE (ID int, Item int);
INSERT INTO @Installed(ID, Item)
VALUES(1, 12345), (2, 67891), (3, 12345), (4, 12345), (4, 67891);
我需要以下结果集:
--Required Result Set
/*
ID | DEL / REM | Installed | Match |
1 | 12345 | 12345 | 1 |
2 | 12345 | 67891 | 0 |
3 | 12345 | 12345 | 1 |
4 | 67891 | 67891 | 1 |
4 | NULL | 12345 | 0 |
*/
我对这一切的主要问题是订单4.在安装的其中一个部件上匹配,但不是第二个。所以我需要说明哪里 ID = ID 和如果可能项目=项目或者只是项目如果不匹配。
我知道备用安装项目的最大数量是两个,因此对于每个订单,最多会安装2个不同的项目编号(当前)。
我知道也可能有多个删除或删除的项目(上面没有描述)。
非常感谢任何帮助。