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

Announcements
FLASH SALE: Save $500! Use code FLASH2026 at checkout until Feb 14th at 11:59PM ET. Register Now!
cancel
Showing results for 
Search instead for 
Did you mean: 
upaliwije
Creator II
Creator II

Max Period

Hi

IF (MAX(YEAR(PERIOD_FROM))<2015 AND  NEW_REN='REN',YEAR(PERIOD_FROM+365),YEAR(PERIOD_TO))AS NEW_PERIOD

My above syntax works well without MAX condition. Have I made any error in adding MAX to above script. if so pls correct me

1 Solution

Accepted Solutions
settu_periasamy
Master III
Master III

Hi,

Try this..

CLM_Data:
LOAD * INLINE [
POLICY_NO, PERIOD_FROM, PERIOD_TO, NEW_REN
NI00111A000013, 7/7/2012, 7/6/2013, REN
NI00111A000013, 7/7/2013, 7/6/2014, REN
NI00111A000013, 7/7/2014, 7/6/2015, REN
NI00111A000013, 7/7/2015, 7/6/2016, REN
NI00121C000055, 2/17/2012, 2/16/2013, NEW
NI00121C000055, 2/17/2013, 2/16/2014, REN
NI00121C000055, 2/17/2014, 2/16/2015, REN
NI00121C000055, 2/17/2015, 2/16/2016, REN
NI00121C000070, 6/25/2012, 6/24/2013, NEW
NI00121C000070, 6/25/2013, 6/24/2014, REN
NI00111C000040, 4/18/2012, 4/17/2013, REN
NI00111C000040, 4/18/2013, 4/17/2014, REN
NI00111C000040, 4/18/2014, 4/17/2015, REN
NI00111C000043, 7/5/2012, 7/4/2013, REN
NI00111C000043, 7/5/2013, 7/4/2014, REN
NI00111C000043, 7/5/2014, 7/4/2015, REN
NI00111C000043, 7/5/2015, 7/4/2016, REN
NI00131D0000087, 11/22/2012, 11/21/2013, NEW
NI00131D0000087, 11/22/2013, 11/21/2014, REN
]
;


FINAL_DATE:
LOAD *,
if(Peek(POLICY_NO)<> POLICY_NO,
IF (YEAR(PERIOD_FROM)<2015 AND  NEW_REN='REN',YEAR(PERIOD_FROM+365),YEAR(PERIOD_TO)))AS NEW_PERIOD
Resident CLM_Data
ORDER BY POLICY_NO, PERIOD_TO DESC;
DROP TABLE CLM_Data;

View solution in original post

17 Replies
sunny_talwar

From the looks, it doesn't seem that you need Max function. I would try to simplfy this:

If(Year(PERIOD_FROM) < 2015 and NEW_REN = 'REN', Year(AddYears(PERIOD_FROM, 1)), Year(PERIOD_TO)) as NEW_PERIOD

upaliwije
Creator II
Creator II
Author

Thanks Sunny

But here I have more than one record for PERIOD_FROM   Eg 2012,2013,2014 so I want select Max year and that should be less than 2015. Can I use your script for that please

jagan
Partner - Champion III
Partner - Champion III

HI,

There is no need of Max() in the expression.

Regards,

Jagan.

settu_periasamy
Master III
Master III

You can try like..

Max({1}Year(PERIOD_FROM))


Edit: Ignore this. I didn't notice, it is a script side..

sunny_talwar

Not sure what exactly you are trying to do. May be a sample will help us understand better

upaliwije
Creator II
Creator II
Author

This is output I require Sunny (NEW_PERIOD COLUMN)

POLICY_NOPERIOD_FROMPERIOD_TONEW_RENNEW_PERIOD
NI00111A00001307-Jul-201206-Jul-2013REN
NI00111A00001307-Jul-201306-Jul-2014REN
NI00111A00001307-Jul-201406-Jul-2015REN
NI00111A00001307-Jul-201506-Jul-2016REN2016
NI00121C00005517-Feb-201216-Feb-2013NEW
NI00121C00005517-Feb-201316-Feb-2014REN
NI00121C00005517-Feb-201416-Feb-2015REN
NI00121C00005517-Feb-201516-Feb-2016REN2016
NI00121C00007025-Jun-201224-Jun-2013NEW
NI00121C00007025-Jun-201324-Jun-2014REN2014
NI00111C00004018-Apr-201217-Apr-2013REN
NI00111C00004018-Apr-201317-Apr-2014REN
NI00111C00004018-Apr-201417-Apr-2015REN2015
NI00111C00004305-Jul-201204-Jul-2013REN
NI00111C00004305-Jul-201304-Jul-2014REN
NI00111C00004305-Jul-201404-Jul-2015REN
NI00111C00004305-Jul-201504-Jul-2016REN2016
NI00131D000008722-Nov-201221-Nov-2013NEW
NI00131D000008722-Nov-201321-Nov-2014REN2015
upaliwije
Creator II
Creator II
Author

This is not in expression side but in data load script, Is it possible to solve my problem using Peek() function

upaliwije
Creator II
Creator II
Author

Pls have a look at my below script and advise.

FINAL_DATE:

load *,

if(Peek( POLICY_NO<> POLICY_NO),NEW_PERIOD)AS NEW_PERIOD

;

LOAD *,

IF (YEAR(PERIOD_FROM)<2015 AND  NEW_REN='REN',YEAR(PERIOD_FROM+365),YEAR(PERIOD_TO))AS NEW_PERIOD

//If(Year(PERIOD_FROM) < 2015 and NEW_REN = 'REN', Year(AddYears(PERIOD_FROM, 1)), Year(PERIOD_TO)) as NEW_PERIOD

Resident CLM_Data

ORDER BY POLICY_NO;

DROP TABLE CLM_Data;

settu_periasamy
Master III
Master III

Hi,

Like this?

Capture.JPG

CLM_Data:

LOAD * INLINE [

    POLICY_NO, PERIOD_FROM, PERIOD_TO, NEW_REN

    NI00111A000013, 7/7/2012, 7/6/2013, REN

    NI00111A000013, 7/7/2013, 7/6/2014, REN

    NI00111A000013, 7/7/2014, 7/6/2015, REN

    NI00111A000013, 7/7/2015, 7/6/2016, REN

    NI00121C000055, 2/17/2012, 2/16/2013, NEW

    NI00121C000055, 2/17/2013, 2/16/2014, REN

    NI00121C000055, 2/17/2014, 2/16/2015, REN

    NI00121C000055, 2/17/2015, 2/16/2016, REN

    NI00121C000070, 6/25/2012, 6/24/2013, NEW

    NI00121C000070, 6/25/2013, 6/24/2014, REN

    NI00111C000040, 4/18/2012, 4/17/2013, REN

    NI00111C000040, 4/18/2013, 4/17/2014, REN

    NI00111C000040, 4/18/2014, 4/17/2015, REN

    NI00111C000043, 7/5/2012, 7/4/2013, REN

    NI00111C000043, 7/5/2013, 7/4/2014, REN

    NI00111C000043, 7/5/2014, 7/4/2015, REN

    NI00111C000043, 7/5/2015, 7/4/2016, REN

    NI00131D0000087, 11/22/2012, 11/21/2013, NEW

    NI00131D0000087, 11/22/2013, 11/21/2014, REN

];

NoConcatenate

FINAL_DATE:

LOAD *,

IF (YEAR(PERIOD_FROM)<2015 AND  NEW_REN='REN',YEAR(PERIOD_FROM+365),YEAR(PERIOD_TO))AS NEW_PERIOD

Resident CLM_Data ORDER BY POLICY_NO;

DROP TABLE CLM_Data;