2

次のクエリで if then ステートメントを使用するのに問題があります。

define start_date = '&START_DATE'
define end_date   = '&END_DATE'
define co_cd      = '&COMPANY_CODE'
define myacct     = '&4_DIGIT_ACCOUNT'

select ivc.pmt_dt, ivc.ivc_cd, gl.seq#, gl.gl_acct_cd, ivc.ve_cd, ve.ve_name, gl.amt
from ivc ivc
  left outer join ve ve
    on ivc.ve_cd = ve.ve_cd
  left outer join ivc$gl_acct gl
    on (ivc.ivc_cd = gl.ivc_cd and ivc.ve_cd = gl.ve_cd)
where ivc.post_dt >= '&start_date'
  and ivc.post_dt <= '&end_date'
  and substr(gl_acct_cd,1,4) = '&myacct'
  and if '&co_cd' = 'BSD' then
        substr(gl_acct_cd,6,2) in ('04','08','11','31','37')
      elseif '&co_cd' = 'JEYE' then
        substr(gl_acct_cd,6,2) in ('03','20','21','22','23','24')
      elseif '&co_cd' = 'BSF' then
        --something
      elseif '&co_cd' = 'ALL' then
        --something
      else
        substr(gl_acct_cd,6,2) in '&co_cd'
      end if
order by gl.amt desc

If Then ステートメントで何が間違っていますか? 無効な関係演算子エラーが発生し続けます。オンラインでかなり検索しましたが、答えが見つかりません。どんな助けでも大歓迎です。私はこのようなもので危険であることを十分に知っています...かなりのSQLクエリを実行しますが、通常はあまり複雑になりません。ありがとう!

4

2 に答える 2