Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi Community,
i will implement if else condition in my script
In following scrpt if Distinct Count of DQ_TIME_ID is greater than 1 then i'll run VOLUMETRIC2 Table else not !!
Can it possible by using If Else in Script? How?
VOLUMETRIC:
LOAD
DQ_TIME_ID AS DQ_TIME_ID1,
Date(ApplyMap('TIMEDQ',DQ_TIME_ID)) as LOAD_DATE,
ApplyMap('PHYSICALDATASOURCE',PHYSICAL_DATA_SOURCE_ID) as FILE_NAME,
CHECK_POINT_ID,
ROW_CNT
FROM '../Stage/QVDs/Stage1_METRIC_VOLUME.qvd'(qvd);
VOLUMETRIC2:
LOAD
MAX(DQ_TIME_ID1) AS Min_DQ_Time
RESIDENT VOLUMETRIC where DQ_TIME_ID1<$(vCurrDateData);
LET vCurrDateData1=peek('Min_DQ_Time',0,'VOLUMETRIC2');
drop table VOLUMETRIC2;
Its not clear what you are attempting, but the yes, you can load in an IF statement. Something like;
If <some conditional expression returning true (<>0) or false (=0)> Then
// do something if condition is true
VOLUMETRIC:
LOAD ...
Else
// do something else if condition is false
....
End If
Try it for yourself, and follow the script execution in the debugger.
VOLUMETRIC:
LOAD
DQ_TIME_ID AS DQ_TIME_ID1,
Date(ApplyMap('TIMEDQ',DQ_TIME_ID)) as LOAD_DATE,
ApplyMap('PHYSICALDATASOURCE',PHYSICAL_DATA_SOURCE_ID) as FILE_NAME,
CHECK_POINT_ID,
ROW_CNT
FROM '../Stage/QVDs/Stage1_METRIC_VOLUME.qvd'(qvd);
let vCount = FieldvalueCount('DQ_TIME_ID1');
IF $(vCount ) > 1 THEN
VOLUMETRIC2:
LOAD
MAX(DQ_TIME_ID1) AS Min_DQ_Time
RESIDENT VOLUMETRIC where DQ_TIME_ID1<$(vCurrDateData);
LET vCurrDateData1=peek('Min_DQ_Time',0,'VOLUMETRIC2');
drop table VOLUMETRIC2;
ELSE
TRACE "Count is not greater then one";
ENDIF
Can you share some sample data to have a look on the problem it is better to help.
Regards
Anand