我正在尝试根据两个标准获取两个数据库之间的唯一记录。标准是:
- 如果在数据库 1 中找到数据(在下面的示例中为@SCCM),则优先考虑
- 获取所选数据库中的 MAX 资源 ID
这是一个例子,它是一半的工作。数据库首选项有效,但该数据库内的最大资源 ID 无效。现在它正在选择@SMS 和@SCCM 之间的最大值
DECLARE @SMS TABLE (
name0 varchar(100),
resid int
)
DECLARE @SCCM TABLE (
name0 varchar(100),
resid int
)
INSERT INTO @SMS
SELECT 'TEST', 1000 UNION
SELECT 'TEST', 1500 UNION
SELECT 'TEST1', 2000 UNION
SELECT 'TEST2', 3000 UNION
SELECT 'TEST3', 4000
INSERT INTO @SCCM
SELECT 'TEST', 100 UNION
SELECT 'TEST', 150 UNION
SELECT 'TEST1', 200 UNION
SELECT 'TEST2', 300
SELECT MIN(SMSDB) as SMSDB, MAX(Resid), Name0 FROM
(
SELECT name0, resid, 2 as SMSDB FROM @SMS
UNION ALL
SELECT name0, resid, 1 as SMSDB FROM @SCCM
) as tbl
GROUP BY NAME0
预期成绩:
SMSDB | Resid | Name0
----------------------
1 | 150 | TEST
1 | 200 | TEST1
1 | 300 | TEST2
2 | 4000 | TEST3