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

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Excluding a calculated value in load script

Hi guys,

I want to exclude the records where COLLECTIONDAYS or (date(CLOSED)-date(TRANSDATE)) = 0

How can I do that in the load script?

Or if not possible in the load script.  How can I exclude these values in a chart expression using the AVG formula?

LOAD DATAAREAID&ACCOUNTNUM as CUSTACCOUNTNUM,
    
date(TRANSDATE) as INVOICEDATE,
    
DATAAREAID&VOUCHER as VOUCHERNUM,
    
INVOICE as INVOICENUMBER,
    
AMOUNTCUR,
    
SETTLEAMOUNTCUR,
    
AMOUNTMST,
    
SETTLEAMOUNTMST,
    
CURRENCYCODE,
    
DUEDATE,
    
LASTSETTLEVOUCHER,
    
LASTSETTLEDATE,
    
LASTEXCHADJVOUCHER,
    
date(CLOSED) as PAYMENTDATE,
    
TRANSTYPE,
    
SETTLEMENT,
    
date(CLOSED)-date(TRANSDATE) as COLLECTIONDAYS;
SQL SELECT *
FROM "Dynamics_2009".dbo.CUSTTRANS where TRANSTYPE = '6' AND CLOSED > '01.01.1900' and not AMOUNTCUR = '0' ;

1 Solution

Accepted Solutions
jpapador
Partner - Specialist
Partner - Specialist

LOAD DATAAREAID&ACCOUNTNUM as CUSTACCOUNTNUM,
    
date(TRANSDATE) as INVOICEDATE,
    
DATAAREAID&VOUCHER as VOUCHERNUM,
    
INVOICE as INVOICENUMBER,
    
AMOUNTCUR,
    
SETTLEAMOUNTCUR,
    
AMOUNTMST,
    
SETTLEAMOUNTMST,
    
CURRENCYCODE,
    
DUEDATE,
    
LASTSETTLEVOUCHER,
    
LASTSETTLEDATE,
    
LASTEXCHADJVOUCHER,
    
date(CLOSED) as PAYMENTDATE,
    
TRANSTYPE,
    
SETTLEMENT,
    
date(CLOSED)-date(TRANSDATE) as COLLECTIONDAYS

WHERE (date(CLOSED)-date(TRANSDATE)) > 0;
SQL SELECT *
FROM "Dynamics_2009".dbo.CUSTTRANS where TRANSTYPE = '6' AND CLOSED > '01.01.1900' and not AMOUNTCUR = '0' ;

View solution in original post

6 Replies
jpapador
Partner - Specialist
Partner - Specialist

LOAD DATAAREAID&ACCOUNTNUM as CUSTACCOUNTNUM,
    
date(TRANSDATE) as INVOICEDATE,
    
DATAAREAID&VOUCHER as VOUCHERNUM,
    
INVOICE as INVOICENUMBER,
    
AMOUNTCUR,
    
SETTLEAMOUNTCUR,
    
AMOUNTMST,
    
SETTLEAMOUNTMST,
    
CURRENCYCODE,
    
DUEDATE,
    
LASTSETTLEVOUCHER,
    
LASTSETTLEDATE,
    
LASTEXCHADJVOUCHER,
    
date(CLOSED) as PAYMENTDATE,
    
TRANSTYPE,
    
SETTLEMENT,
    
date(CLOSED)-date(TRANSDATE) as COLLECTIONDAYS

WHERE (date(CLOSED)-date(TRANSDATE)) > 0;
SQL SELECT *
FROM "Dynamics_2009".dbo.CUSTTRANS where TRANSTYPE = '6' AND CLOSED > '01.01.1900' and not AMOUNTCUR = '0' ;

Not applicable
Author

Wow, that was a quick reply, and fixed my problem which I have been trying to solve for an hour

Thanks so much.

Can I ask one more question?

I have a field called: date(CLOSED) as PAYMENTDATE,

This field has the value of 01.01.1900 if an invoice has not been paid.  If it has been paid, it has the date of payment.  Is there a way that I can overwrite 01.01.1900 with todays date?

LOAD DATAAREAID&ACCOUNTNUM as CUSTACCOUNTNUM,
    
date(TRANSDATE) as INVOICEDATE,
    
month(TRANSDATE) as MONTH,
    
year(TRANSDATE) as YEAR,
    
DATAAREAID&VOUCHER as VOUCHERNUM,
    
INVOICE as INVOICENUMBER,
    
AMOUNTCUR,
    
SETTLEAMOUNTCUR,
    
AMOUNTMST,
    
SETTLEAMOUNTMST,
    
CURRENCYCODE,
    
DUEDATE,
    
LASTSETTLEVOUCHER,
    
LASTSETTLEDATE,
    
LASTEXCHADJVOUCHER,
    
date(CLOSED) as PAYMENTDATE,
    
TRANSTYPE,
    
SETTLEMENT,
    
date(CLOSED)-date(TRANSDATE) as COLLECTIONDAYS WHERE (date(CLOSED)-date(TRANSDATE)) > 0;
SQL SELECT *
FROM "Dynamics_2009".dbo.CUSTTRANS where TRANSTYPE = '6' AND CLOSED > '01.01.1900' and not AMOUNTCUR = '0' ;

jpapador
Partner - Specialist
Partner - Specialist

Yes.

If(Date(Closed) = '01.01.1900', Today(), Date(Closed)) as PAYMENTDATE

Not applicable
Author

Like this?  It does not seem to be working.  I do not get any PAYMENTDATE with either 01.01.1900 or 25.02.2014


LOAD DATAAREAID&ACCOUNTNUM as CUSTACCOUNTNUM,
    
date(TRANSDATE) as INVOICEDATE,
    
month(TRANSDATE) as MONTH,
    
year(TRANSDATE) as YEAR,
    
DATAAREAID&VOUCHER as VOUCHERNUM,
    
INVOICE as INVOICENUMBER,
    
AMOUNTCUR,
    
SETTLEAMOUNTCUR,
    
AMOUNTMST,
    
SETTLEAMOUNTMST,
    
CURRENCYCODE,
    
DUEDATE,
    
LASTSETTLEVOUCHER,
    
LASTSETTLEDATE,
    
LASTEXCHADJVOUCHER,
    
CLOSED,
    
If(Date(CLOSED) = '01.01.1900', Today(), Date(CLOSED)) as PAYMENTDATE,
    
TRANSTYPE,
    
SETTLEMENT,
    
date(CLOSED)-date(TRANSDATE) as COLLECTIONDAYS WHERE (date(CLOSED)-date(TRANSDATE)) > 0;
SQL SELECT *
FROM "Dynamics_2009".dbo.CUSTTRANS where TRANSTYPE = '6' and not AMOUNTCUR = '0' ;

Not applicable
Author

Oh, and if I change CLOSED = 01.01.1900 to today() then I would need to change:


date(CLOSED)-date(TRANSDATE) as COLLECTIONDAYS WHERE (date(CLOSED)-date(TRANSDATE)) > 0;


to

date(PAYMENTDATE)-date(TRANSDATE) as COLLECTIONDAYS WHERE (date(PAYMENTDATE)-date(TRANSDATE)) > 0;


But this cannot be done, right?


Not applicable
Author

Seems to be ok, like this.  Does it look ok to you?

LOAD DATAAREAID&ACCOUNTNUM as CUSTACCOUNTNUM,
    
date(TRANSDATE) as INVOICEDATE,
    
month(TRANSDATE) as MONTH,
    
year(TRANSDATE) as YEAR,
    
DATAAREAID&VOUCHER as VOUCHERNUM,
    
INVOICE as INVOICENUMBER,
    
AMOUNTCUR,
    
SETTLEAMOUNTCUR,
    
AMOUNTMST,
    
SETTLEAMOUNTMST,
    
CURRENCYCODE,
    
DUEDATE,
    
LASTSETTLEVOUCHER,
    
LASTSETTLEDATE,
    
LASTEXCHADJVOUCHER,
    If(Date(CLOSED) = '01.01.1900', Today(), Date(CLOSED)) as PAYMENTDATE,
    
TRANSTYPE,
    
SETTLEMENT,
     (
If(Date(CLOSED) = '01.01.1900', Today(), Date(CLOSED)))-date(TRANSDATE) as COLLECTIONDAYS WHERE (If(Date(CLOSED) = '01.01.1900', Today(), Date(CLOSED)))-date(TRANSDATE) > 0;
SQL SELECT *
FROM "Dynamics_2009".dbo.CUSTTRANS where TRANSTYPE = '6' and not AMOUNTCUR = '0' ;