我想找到具有相同ID和指示器但具有不同值的记录.以下是我的样本数据.
declare @table1 table (id int, indicator varchar(20),value int);
INSERT INTO @table1 VALUES
(11,'AC',80),
(11,'HE',90),
(12,'AC',10),
(12,'HE',80),
(13,'AC',10),
(13,'HE',10);
declare @table2 table(id int, indicator varchar(20),value int);
INSERT INTO @table2 VALUES
(11,'AC',80),
(11,'HE',90),
(12,'AC',11),
(12,'HE',80),
(13,'AC',10),
(14,'AC',10);
我创造了db<>fiddle个
根据上面的样本数据,将有4个场景:
1.11两个表中都存在,每个ID都有相同的指标和值,所以我不会登录记录.
2.带有指标‘AC’的12与表2(10和11)的值不同,这是我需要的记录.
3.13在两个表中都存在,但表%1有2条记录,两个指标‘AC’具有相同的值.在本例中,我只需要表2中没有匹配记录的那个.(在本例中,ITS(13,‘HE’,10). 请注意,表2中也可能出现同样的情况.因此,表1的结果将变为空,并列出表2中的结果
4.我只存在于其中一张表中,例如:14.那么我就不需要这张了.
换句话说,我需要的记录,如果2表有相同的ID和指标,但与不同的值.如果两个表具有相同ID,但具有不同的指示符和值,我也需要记录此记录.
因此,我确实希望我的结果是这样的.
Table 1 ID | Table 1 Indicator | Table 1 Value | Table 2 ID | Table 2 Indicator | Table 2 Value |
---|---|---|---|---|---|
12 | AC | 10 | 12 | AC | 11 |
13 | HE | 10 | NULL | NULL | NULL |