2つのテーブルがあります.1つは、結合された(一意の識別子)が各列の値に対して持つべきことを示すマスターテーブルです。各Combinedとその現在の列の値。私は2つのテーブルを比較しようとしていて、マスターテーブルと一致しない各レコードとそのテーブルを表示します。私は現在、データが一致したときにNullを取得していますが、マスターテーブルのデータを入力したいと思います。問題は、マスターテーブルからデータを取得してヌルのレコードをすべて表示すると、少なくとも1つの不一致が表示され、すべてのレコードではないレコードのみが好きなことです。サンプルコードは次のとおりです。これは私に必要な結果が表示されますが、データが一致しない場合にヌルを与える比較2影響を受けるすべてのレコードと異なるテーブルとリスト結果を返します。
select a.combined, B.ID,B.code,
case
when A.CODE<>B.CODE
then A.CODE
End AS UPDATED_CODE,
B.QTY,
case
when A.QTY<>B.QTY
Then A.QTY
End AS UPDATED_QTY
FROM TABLE1 A
JOIN TABLE2 B ON A.COMBINED = B.COMBINED
where UPDATED_CODE is not null
or UPDATED_QTY is not null
。これらの結果を表示するだけでなく、NULLがある場合はTABLE1からのデータも提供したいと思います。上記のクエリからの出力例は次のとおりです。
Combined ID B.CODE UPDATED_CODE B.QTY A.QTY
1 1234565646464 1212121 RTD JOR 15 ?
2 5632232356565 3333333 JOR SBB 15 ?
3 3253265899656 2222222 SBB SIH 15 ?
4 2332359654151 1111111 SBB RTD 15 ?
5 2124184324324 0000000 JOR RTD 15 ?
6 1654653235466 4444444 JOR RTD 15 ?
7 4323656235659 7777777 RTD ? 0 15
場合条件を 'WHERE A.CODE <> B.CODEまたはA.QTY <> B.QTY'に変更し、それぞれ' CASE 'に 'ELSE A.col'を追加する必要があります' – dnoeth
これは完璧に機能しました!私は答えとしてあなたのコメントを選択することはできません。 – MrLockett
あなたは答えとしてコメントを受け入れることができないので、私はこれを答えとして投稿しました:-) – dnoeth