0

だから私はデータが次のようなテーブルを持っています:

╔═══════════╦═════════════╦═════════╗
║   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 つのレコードしか持つことができないと思いました。

4

1 に答える 1