次の値を持つテーブルがあります。
gl_accountcode gl_reference gl_subledger_code MOE
40000000003000 00001064 TOTDOO01
40000000003102 00001064 TOTDOO01 60
40002073999807 00001064 TOTDOO01
40000000003000 00025928 WATSEC01
40000000003102 00025928 WATSEC01 60
40305558609795 00025928 WATSEC01 60
substring(B.gl_accountcode,9,2) = '60' を条件 1 として、また (B.gl_accountcode) = '40000000003102' および substring(B.gl_accountcode,9,2) = の場合に、MOE 列に 60 を入力したい条件 2 と同じ GL 参照の場合は「60」。
この例では、「00001064」と「00025928」の 2 つの GL 参照を取り上げました。
substring(B.gl_accountcode,9,2) が '60' ではなく、同じ GL リファレンスの (B.gl_accountcode) = '40000000003102' である場合、MOE 列に '60' を入力したくありません。 .
select
RTRIM(LTRIM(B.gl_accountcode)) as 'GL AccountCode',
RTRIM(LTRIM(B.gl_reference)) as 'GL Reference',
RTRIM(LTRIM(B.gl_subledger_code)) as 'GL Subledger Code',
CASE
WHEN substring(B.gl_accountcode,9,2) = '60' OR (LTRIM(RTRIM(B.gl_accountcode))) = '40000000003102' THEN '60'
ELSE ''
END MOE
from dbo.pronto_NZD_GLTransUnion B
where B.gl_reference in ( '00025928', '00001064')
order by B.gl_reference, B.gl_accountcode
テーブルに自分で参加する必要があると思いますが、頭がわかりません。あなたの助けに感謝。