Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 Name | QVD Name | Filed in Table |
---|---|---|
Bank | Bank.qvd | Date |
BWBalances | BWBalances.qvd | Group Account |
GLBalances | GLBalances.qvd | Group Account Identifier |
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
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.