Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
sagaraperera
Creator
Creator

Substitution

Der all

I have got the following expression in a my script

Now I want to change det_ref_date  and  det_risk_date  of '13-mar-18' I want to use a variable.

SELECT DET_DEBT_CODE,DEB_NAME,DET_BRANCH_CODE,det_rp_code,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 0 AND 30 THEN NVL(txn_amt,0) END ) Days_0_30,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 31 AND 60 THEN NVL(txn_amt,0) END ) Days_31_60,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 61 AND 90 THEN NVL(txn_amt,0) END ) Days_61_90,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 91 AND 120 THEN NVL(txn_amt,0) END ) Days_91_120,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 121 AND 150 THEN NVL(txn_amt,0) END ) Days_121_150,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 151 AND 180 THEN NVL(txn_amt,0) END ) Days_151_180,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 181 AND 360 THEN NVL(txn_amt,0) END ) Days_181_360,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) >360 THEN NVL(txn_amt,0) END ) Days_Over_360

FROM ( 

select a.DET_DEBT_CODE,

( select DEB_NAME_1 from ac_m_debtor where DEB_BRANCH_CODE=a.DET_BRANCH_CODE

and DEB_DEBTOR_CODE=a.DET_DEBT_CODE ) DEB_NAME,

a.DET_BRANCH_CODE,

a.DET_REF_C ,

det_risk_date REF_C_DATE,

a.det_contra_acct DET_REF_DATE,

( select sum(decode(det_dc_code,'D',det_hc_amt,'C',-det_hc_amt)) from ac_t_debtor c where a.det_ref_c=c.det_ref_c

and a.det_branch_code=c.det_branch_code and c.det_ref_date<=TO_date(:P_PROG_DATE,'dd-mon-yy') ) Txn_Amt,

a.DET_TXNTYPE,

a.DET_REF_2,

A.det_rp_code

from ac_t_debtor a

where a.det_ref_date<=TO_date(:P_AS_AT_DATE,'dd-mon-yy')

---and A.DET_DEBT_CODE between :P_CR_FROM and :P_CR_TO

and a.det_risk_date<=TO_date(:P_AS_AT_DATE,'dd-mon-yy')

and a.det_txntype='1'

and a.DET_BRANCH_CODE LIKE 'CO%'

order by A.DET_DEBT_CODE

)

WHERE txn_amt !=0

GROUP BY DET_DEBT_CODE,DEB_NAME,DET_BRANCH_CODE,det_rp_code

ORDER BY DET_DEBT_CODE;

saga

2 Replies
jwjackso
Specialist III
Specialist III

In your script set your variable:

LET vdet_risk_date = Date(Now(),'DD-MMM-YY');

In your SQL:

and a.det_risk_date<='$(vdet_risk_date)'

sasiparupudi1
Master III
Master III

Let vDate=Date(Date#('13-mar-18','DD-MMM-YY'),'DD-MMM-YY');

SELECT DET_DEBT_CODE,DEB_NAME,DET_BRANCH_CODE,det_rp_code,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 0 AND 30 THEN NVL(txn_amt,0) END ) Days_0_30,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 31 AND 60 THEN NVL(txn_amt,0) END ) Days_31_60,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 61 AND 90 THEN NVL(txn_amt,0) END ) Days_61_90,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 91 AND 120 THEN NVL(txn_amt,0) END ) Days_91_120,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 121 AND 150 THEN NVL(txn_amt,0) END ) Days_121_150,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 151 AND 180 THEN NVL(txn_amt,0) END ) Days_151_180,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) BETWEEN 181 AND 360 THEN NVL(txn_amt,0) END ) Days_181_360,

SUM(CASE WHEN TO_date(:P_AS_AT_DATE,'dd-mon-yy') - to_date(REF_C_DATE) >360 THEN NVL(txn_amt,0) END ) Days_Over_360

FROM ( 

select a.DET_DEBT_CODE,

( select DEB_NAME_1 from ac_m_debtor where DEB_BRANCH_CODE=a.DET_BRANCH_CODE

and DEB_DEBTOR_CODE=a.DET_DEBT_CODE ) DEB_NAME,

a.DET_BRANCH_CODE,

a.DET_REF_C ,

det_risk_date REF_C_DATE,

a.det_contra_acct DET_REF_DATE,

( select sum(decode(det_dc_code,'D',det_hc_amt,'C',-det_hc_amt)) from ac_t_debtor c where a.det_ref_c=c.det_ref_c

and a.det_branch_code=c.det_branch_code and c.det_ref_date<=TO_date(:P_PROG_DATE,'dd-mon-yy') ) Txn_Amt,

a.DET_TXNTYPE,

a.DET_REF_2,

A.det_rp_code

from ac_t_debtor a

where a.det_ref_date<='$(vDate)'

---and A.DET_DEBT_CODE between :P_CR_FROM and :P_CR_TO

and a.det_risk_date<='$(vDate)'

and a.det_txntype='1'

and a.DET_BRANCH_CODE LIKE 'CO%'

order by A.DET_DEBT_CODE

)

WHERE txn_amt !=0

GROUP BY DET_DEBT_CODE,DEB_NAME,DET_BRANCH_CODE,det_rp_code

ORDER BY DET_DEBT_CODE;