table1 と table2 の 2 つの異なるテーブルで 2 つのシリアル番号を比較する SQL ステートメント (以下を参照) を作成しています。シリアル番号が存在する場合は、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'