我正在编写一个 sql 语句(见下文),它比较 2 个不同表 table1 和 table2 上的 2 个序列号。如果序列号存在,那么我希望 table1 上的另一列更新为“是”,如果 table1 中的序列号在 table2 中不存在,我想更新为“否”
我当前的 sql 语句运行良好,并在必要时用“是”填充列。我的问题是,当序列号不存在时,不是放置“否”,而是更新为 NULL。我的 where 语句很重要,因为我只想比较两个表中日期和安装在两个表中匹配的序列号。我不想比较每一行。谢谢
UPDATE dbo.table1
SET [Match] = CASE WHEN dbo.table2.[Serial Number] IS NOT NULL
THEN 'yes' ELSE 'no' END
FROM dbo.table1 LEFT OUTER JOIN dbo.table2
ON dbo.table2.[Serial Number] = dbo.table1.[Serial Number]
Where dbo.table1.[Date] = 'JAN11' AND
dbo.table1.[Install] = 'new' AND
dbo.table2.[Date] = 'JAN11' AND
dbo.table2.[Install] = 'new'