だから私はデータが次のようなテーブルを持っています:
╔═══════════╦═════════════╦═════════╗
║ Column1 ║ Column2 ║ Column3 ║
╠═══════════╬═════════════╬═════════╣
║ 127001126 ║ 90489495251 ║ 1 ║
║ 127001126 ║ 90489495251 ║ 2 ║
║ 134024323 ║ 81999000004 ║ 1 ║
║ 346122930 ║ 346000016 ║ 2 ║
║ 346122930 ║ 346000016 ║ 1 ║
║ 346122930 ║ 346000016 ║ 3 ║
║ 346207637 ║ 346000016 ║ 1 ║
║ 346207637 ║ 346000016 ║ 3 ║
╚═══════════╩═════════════╩═════════╝
出力が必要です:
╔═══════════╦═════════════╦═════════╗
║ Column1 ║ Column2 ║ Column3 ║
╠═══════════╬═════════════╬═════════╣
║ 127001140 ║ 90489495251 ║ 2 ║
║ 134024323 ║ 81999000004 ║ NULL ║
║ 346122930 ║ 346000016 ║ 2 ║
║ 346207637 ║ 346000016 ║ NULL ║
╚═══════════╩═════════════╩═════════╝
基本的に、列 1 と 2 が列 3 = 2 のレコードがあるかどうかを確認する複数のレコードがあるかどうかを確認します。列 1&2 に column3 = 2 の組み合わせがない場合は、column3 = null で 1 つのレコードを引き戻します。
編集:私が試したコード:
Select *
from (SELECT* From sometable
Where column3 = 2) D Full outer join
(SELECT* FROM sometable
Where coulmn3 = 1) E
on D.Column1 = E.Column1
and D.Column2 = E.Column2
(SELECT * from
FROM sometable
Where coulmn3 = 3) F Full outer join
on E.Column1 = F.Column1
and E.Column2 = F.Column2
上記で column3 の値が null に変更されないことはわかっています。しかし、column1 と column2 の組み合わせごとに少なくとも 1 つのレコードしか持つことができないと思いました。