コード タイプに基づいて金額を比較し、その金額を別のコード タイプと比較して結果を返す必要があるシナリオがあります。
例えば:
SELECT distinct P.TERM_KEY, C.Country_code, Amt.DAMT
FROM TERM P
INNER JOIN Country C ON P.TERM_KEY= C.TERM_KEY
INNER JOIN Amount Amt ON C.COU_KEY = Amt.PARENT_KEY AND Amt.PARENT_TABLE=Country
WHERE P.Term_no = 'ABCD' AND C.Country_CD IN (50, 51)
このクエリの結果は次のとおりです。
TERM_KEY Country_code DAMT
201000000085 5000 1000.00
201000000083 5001 750.00
201000000081 5001 1000.00
201000000342 5000 1000.00
201000002340 5001 750.00
201000034733 5001 1000.00
ここで、国コード (50 および 51) のダムを国コード 20 と比較する必要があります。国コード 20 のダムと国コード (50、51) が等しい場合は、値を「5869」として報告する必要があります。等しくない場合は、値を報告する必要があります。値を「0000」として報告する必要があります。
上記の結果セットを他のケース条件で使用します
例
Case
WHEN C.County = 999 and C.Contry_code = '20' AND ISNULL(CDED.DAmt,0)=0 THEN '5869'
C.County = 999 and C.Contry_code = '20' AND ISNULL(Amt.DAmt,0)!=0 THEN '0000'
end as Country_County
そのため、CDED は結果セットを返す必要があり、場合によってはこれを使用する必要があります。どうすればそれができますか?