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

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Nagaraju_KCS
Specialist III
Specialist III

using Variable.

Hi All,

i have 2002, 2003 to 2007 data in my database

i want return data last 3 years of data in my database using variable  (not Hard coding)

Thanks..

Labels (1)
1 Solution

Accepted Solutions
tresB
Champion III
Champion III

Try this code:

Max:
Load Max(OrderDate) as MaxDate;

SQL SELECT OrderDate
FROM Orders;

Let vMaxYear=Year(Peek('MaxDate'));
Let vFromYear=vMaxYear-3;
Drop Table Max;

LOAD CustomerID,
    EmployeeID,
    Freight,
    OrderDate,
    OrderID,
    ShipperID
Where Year(OrderDate)>='$(vFromYear)';

SQL SELECT *
FROM Orders;

View solution in original post

5 Replies
tresB
Champion III
Champion III

You have to load the data to get the max year and then calculate, something like:

Max:

Load Max(Year) as MaxYear From <DB>;

Let vMaxYear=Peek('MaxYear');

Let vFromYear=vMaxYear-3;

Drop table Max;


FinalTable:

Load * From <DB> where YearField>='$(vFromYear)' ;

tresB
Champion III
Champion III

Please share your sample app.

christian77
Partner - Specialist
Partner - Specialist

Hi:

For loading:

  • vPriorYear2=year(today())-2    --> 2011

LOAD *;

WHERE Year >= $(vPriorYear)

For calcullations:

  • vLast3Years='"' & concat({1<Year={'>=$(vPriorYear2)'}>} distinct Year,'","') & '"'  --> 2011,2012,2013

sum({$<Year={‘$( vLast3Years)’}>}  Amount)

Luck.

tresB
Champion III
Champion III

Try this code:

Max:
Load Max(OrderDate) as MaxDate;

SQL SELECT OrderDate
FROM Orders;

Let vMaxYear=Year(Peek('MaxDate'));
Let vFromYear=vMaxYear-3;
Drop Table Max;

LOAD CustomerID,
    EmployeeID,
    Freight,
    OrderDate,
    OrderID,
    ShipperID
Where Year(OrderDate)>='$(vFromYear)';

SQL SELECT *
FROM Orders;

Nagaraju_KCS
Specialist III
Specialist III
Author

Thank you very much