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: 
soha1902
Creator
Creator

Avoid Multiple If's

Hi All,

Can any one suggest me how should I avoid multiple if's in my load script. At present my script looks like below :

Load
if((Today() - Fdate) < -2562,'>-7 Yrs',
if((Today() - Fdate) <= -2196,'-7 Yrs',
if((Today() - Fdate) <= -1830,'-6 Yrs',
if((Today() - Fdate) <= -1464,'-5 Yrs',
if((Today() - Fdate) <= -1098,'-4 Yrs',
if((Today() - Fdate) <= -732,'-3 Yrs',
if((Today() - Fdate) <= -366,'-2 Yrs',
if((Today() - Fdate) <=0,'-1 Yr',
if((Today() - Fdate) <= 366,'1 Yr',
if((Today() - Fdate) <= 732,'2 Yrs',
if((Today() - Fdate) <= 1098,'3 Yrs',
if((Today() - Fdate) <= 1464,'4 Yrs',
if((Today() - Fdate) <= 1830,'5 Yrs',
if((Today() - Fdate) <= 2196,'6 Yrs',
if((Today() - Fdate) <= 2562,'7 Yrs',
if((Today() - Fdate) > 2562,'>7 Yrs','>-7 Yrs')))))))))))))))) as UpdateFdate

How Should I optimize this code.

Thannks

2 Replies
sunny_talwar

May be this:

Load
If((Today() - Fdate) < -2562,'>-7 Yrs',

If((Today() - Fdate) >  2562, '>7 Yrs', Ceil(fabs(Today() - Fdate)/366) * If((Today() - Fdate) < 0, -1, 1) & ' Yrs')) as UpdateFdate


I like Stefan's Sign() function.


Load
If((Today() - Fdate) < -2562,'>-7 Yrs',

If((Today() - Fdate) >  2562, '>7 Yrs', Sign(Today() - Fdate) & Ceil(fabs(Today() - Fdate)/366)  & ' Yrs')) as UpdateFdate

swuehl
MVP
MVP

Maybe something like

LOAD

     Sign(Today() - Fdate) & (div(Today()-Fdate, 366)+1) & 'Yr(s)' as UpdateFdate

probably needs some enhancements, but could get you started