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

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Multi-Table Incremental Error

I have multiple data sources in my qvw.  I want to perform an incremental load and create the qvd's.

I have the Incremental Load script working for a single data source, but when I try and have multiple data sources I am getting this error.

Here are my data sources:

Table NameQVD NameFiled in Table
BankBank.qvdDate
BWBalancesBWBalances.qvdGroup Account
GLBalancesGLBalances.qvdGroup Account Identifier

multi-table incremental_error.png

Incremental Setup Script

/* Setup for Incrementa Load. */

SET BANKQVDFILE=E:\Data\Close Improvement\Dashbaord\MEC Snapshot\QVD\Bank.qvd;

SET BWQVDFILE=E:\Data\Close Improvement\Dashbaord\MEC Snapshot\QVD\BWBalances.qvd;

//Bank Incremental

SET PKexp=autonumberhash128(Date);

LET banktable='Bank';

If FileSize('$(BANKQVDFILE)')>0 THEN

          SET BANKQVD_EXISTS=1;

ELSE

          SET BANKQVD_EXISTS=0;

END if

IF $(BANKQVD_EXISTS) THEN

  maxdateTab:

  LOAD max(Date)

  From $(BANKQVDFILE)(qvd);

  LET INCREMENTAL_EXP='WHERE Date>='&max('Date',1);

  DROP table maxdateTab;

ELSE

  LET INCREMENTAL_EXP='';

END IF

//BW Balances incremental

SET PKexp=autonumberhash128([Group Account]);

LET BWtable='BWBalances';

If FileSize('$(BWQVDFILE)')>0 THEN

          SET BWQVD_EXISTS=1;

ELSE

          SET BWQVD_EXISTS=0;

END if

IF $(BWQVD_EXISTS) THEN

        maxdateTab:

        LOAD max([Group Account])

        From $(BWQVDFILE)(qvd);

       LET INCREMENTAL_EXP='WHERE Group Account>='&max('Group Account',1);

      DROP table maxdateTab;

ELSE

         LET INCREMENTAL_EXP='';

END IF

Incremental Update Script

Directory;

IF $(BANKQVD_EXISTS) THEN

  RIGHT JOIN ($(banktable)) LOAD DISTINCT

  *

  ,$(PKexp) as PK

  RESIDENT $(banktable)

  ;

  CONCATENATE ($(banktable)) LOAD * FROM $(BANKQVDFILE) (qvd)

  WHERE NOT exists(PK, $(PKexp))

  ;

DROP FIELD PK;

RIGHT JOIN LOAD DISTINCT *, $(PKexp) as PK RESIDENT $(banktable);

Inner Join LOAD $(PKexp) as PK;

Select analysis_date,item from view(nolock);

DROP FIELD PK;

END IF

STORE $(banktable) INTO $(BANKQVDFILE)(qvd);

//BW incremental

Directory;

IF $(BWQVD_EXISTS) THEN

RIGHT JOIN ($(BWtable)) LOAD DISTINCT

  *

  ,$(PKexp) as PK

RESIDENT $(BWtable)

;

CONCATENATE ($(BWtable)) LOAD * FROM $(BWQVDFILE) (qvd)

WHERE NOT exists(PK, $(PKexp))

;

DROP FIELD PK;

RIGHT JOIN LOAD DISTINCT *, $(PKexp) as PK RESIDENT $(BWtable);

Inner Join LOAD $(PKexp) as PK;

Select analysis_date,item from view(nolock);

DROP FIELD PK;

END IF

STORE $(BWtable) INTO $(BWQVDFILE)(qvd);

Thanks,

Dan

Labels (1)
1 Reply
Gysbert_Wassenaar
Partner - Champion III
Partner - Champion III

It looks to me like you want to load fields from a resident table that you haven't created yet. You first have to create the table 'Bank' before you can use it for a resident load.


talk is cheap, supply exceeds demand