以下のシナリオに基づいてフラグを作成したいと考えています。ソーステーブルと私が望む結果は以下の表にあります。SQL Serverのケースステートメント - トランザクション別にグループ化するときに他の2つの列から1つの列を派生させる
SRCE_SYST_FLAG
がヌルでない(そして= Y
)は、次いで他、SRCE_SYST_FLAG
列の値を使用して、新しいフラグ(DERIVED_FLAG
)を作成GENERIC_FLAG
カラムを使用します。
しかし同じTRAN_ID
グループ内の別のレコードが移入SRCE_SYST_FLAG
列を有する場合、他のSRCE_SYST_F
にDERIVED_FLAG
を設定しました。以下はTRAN_ID = 2222
のケースです。
誰でもケースステートメントを使用してこれを行う方法を知っていますか?私は、下記のような一般的なものを作ることができるが、これはNULLのレコードのためのSRCE_SYST_FLAG
を使用しませんが、SRCE_SYST_FLAG
はそのtran_idグループ内の別のレコードに移入さ:
CASE
WHEN SRCE_SYST_Flag = 'Y'
THEN SRCE_SYST_FLAG
ELSE GENERIC_FLAG
END AS 'DERIVED_FLAG'
サンプルデータセット:
Client | Limit | Pdct_type_c | SRCE_SYST_FLAG | GENERIC_FLAG | TRAN_ID
--------------------------------------------------------------------------------
John | 4,000,000.00 | DCO | y | N | 2222
John | | DCO | NULL | N | 2222
Mark | 2,000,000.00 | DCO | NULL | N | 435
Mark | | DCO | NULL | N | 435
Luke | 4,000,000.00 | DCO | N | Y | 980
望ましい結果:私はどのような援助に感謝
Client | Limit | Pdct_type_c | DERIVED_FLAG | TRAN_ID
---------------------------------------------------------------
John | 4,000,000.00 | DCO | Y | 2222
John | | DCO | Y | 2222
Mark | 2,000,000.00 | DCO | N | 435
Mark | | DCO | N | 435
Luke | 4,000,000.00 | DCO | Y | 980
、
012 tran_idあたりの「Y」の数をカウントするの乾杯
あなたは私たちのすべての可能なケースをカバーするデータが表示されるはずです。 –
'TRAN_ID = 2222 'の最初のレコードではなく、' SRCE_SYST_FLAG =' N 'とGENERIC_FLAG =' Y'のときにどうなるべきですか? –
ソースシストフラグが 'Y'でない場合、DERIVED_FLAGをGENERIC_FLAGに設定してください。私は上記の情報を更新します – Patty