2017-12-05 18 views
0

SELECT文で関連する条件をチェックする必要があります。単に私はこれが必要です。私は、このselect文に前述の条件を追加する必要がありますカーソル内の条件を追加する

CURSOR PR_CASHDEPOSITEMAIL IS 
    SELECT  B.STR_DEALER_NAME AS DEALERNAME, 
       B.STR_BC_BRANCH_CODE AS ASSINGBRANCH, 
       A.STRDDH_DEALERCODE AS ICAMDEALERCODE, 
       B.STR_DEALER_CODE AS DEALERCODE, 
       TO_DATE(A.DTDDH_DPDATE,'DD/MM/YYYY')AS RECEIPTDATE, 
       A.NUMDDH_BALANCEAMOUNT AS RECEIPTAMOUNT, 
       A.STRDDH_DPSLNO AS DEPOSITNUMBER 
    FROM  GLINFO.TBLDEALERDEPOSITEHEADER A , 
       ADL.REF_DEALER_MASTER B , 
       CORPINFO.TBLBRANCHES C 
    WHERE  A.NUMDDH_BALANCEAMOUNT >0 
    AND   A.STRDDH_DEALERCODE=B.STR_COMP_DEALER_CODE 
    AND   B.STR_BC_BRANCH_CODE=C.BRN_CODE 
    AND   B.str_bc_branch_code =strBranch 
    ORDER BY B.STR_BC_BRANCH_CODE, B.STR_DEALER_NAME, RECEIPTDATE, DEPOSITNUMBER; 

BEGIN 

--rest of code 

if systemdate is 'Monday' then 
    select statement1(which contains cursor) 
else 
    select statement 2(which contains cursor) 

は、ここに私のコードです。

+0

あなたはあなたの例では一つだけの文を持っています。 'statement1'と' statement2'とは何ですか? – Dmitry

+0

ステートメント2はステートメント1と同じです。違いは、それは異なる日付範囲を捕捉するだけです – Didu

答えて

1

ここでパラメータを持つカーソルが役立ちます。カーソル宣言:カーソルの

CURSOR PR_CASHDEPOSITEMAIL (p_day varchar2) -- <-- parameter declaration 
    IS 
    SELECT <...> 
    FROM <...> 
    WHERE <...> 
     and to_date(some_date_column, 'Day') = p_day; -- <-- parameter use in query 

用途:

... 
begin 
    open PR_CASHDEPOSITEMAIL('Monday'); -- <-- passing value to the cursor 
    ... 
関連する問題