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: 
Not applicable

IF else condition while scripting Incremental Load

Hi Guys,

I need your help in completing my Incremental Load Script:

I want that IF a QVD file found then Execute below Script else execute the last one:

//GET FROM & TO DATE FROM QLIKVIEW CONFIGURATION TABLE
QLIKVIEW_QVD_CONFIG:

SQL
SELECT
CONVERT(VARCHAR(10),[EXTRACT_FROM_DT],112) AS FROM_DT_KEY,
CONVERT(VARCHAR(10),[EXTRACT_TO_DT],112) AS TO_DT_KEY
FROM [QLIKVIEW].[QLIKVIEW_QVD_Config]
WHERE [TABLE_NAME]='STAR.FACT'
;
//GET FROM & TO DATE FROM QLIKVIEW CONFIGURATION TABLE



//ASSIGNE THE VALUES TO VARIABLES V_FROM_DATE_KEY & V_TO_DATE_KEY

LET V_FROM_DATE_KEY =Peek('FROM_DT_KEY',0,'QLIKVIEW_QVD_CONFIG');
LET V_TO_DATE_KEY =Peek('TO_DT_KEY',0,'QLIKVIEW_QVD_CONFIG');

DROP TABLE QLIKVIEW_QVD_CONFIG;
//ASSIGNE THE VALUES TO VARIABLES V_FROM_DATE_KEY & V_TO_DATE_KEY

IF FACT_DATA.QVD FOUND then

FACT_DATA:
LOAD
*
FROM (QVD)
WHERE (DATE_KEY<$(V_FROM_DATE_KEY));

CONCATENATE
LOAD
*
FROM (QVD)
WHERE (DATE_KEY>$(V_TO_DATE_KEY));

//DELETE DATA FROM QVD BETWEEN RANGE V_FROM_DATE_KEY & V_TO_DATE_KEY

//Incremental Load
CONCATENATE
SQL
SELECT    
A.*

FROM        
STAR.FACT A
WHERE    
(A. DATE_KEY BETWEEN
$(V_FROM_DATE_KEY) AND $(V_TO_DATE_KEY))

ELSE

FACT_DATA:

SQL
SELECT    
A.*

FROM        
STAR.FACT A
WHERE    
(A. DATE_KEY BETWEEN
$(V_FROM_DATE_KEY) AND $(V_TO_DATE_KEY))

Why I want to go for IF else statement because when 1st time I load there will not be any QVD file so Without IF ELSE my Script will throw an error.

So That's why I want to handle it with IF ELSE. If specified QVD file found then Execute 1st query else execute 2nd query.

2 Replies
Gysbert_Wassenaar
Partner - Champion III
Partner - Champion III

IF len(filetime('FACT_DATA.QVD'))>0 THEN

     ...

ELSE

     ...

END IF


talk is cheap, supply exceeds demand
Anonymous
Not applicable
Author

You can also use ErrorMode:

set ErrorMode=0;

load * from abc.qvw;

if ScriptError=8 then   // File not found in this case

     //no file;

end if