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

Announcements
Join us in Toronto Sept 9th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
qv_testing
Specialist II
Specialist II

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..

1 Solution

Accepted Solutions
tresesco
MVP
MVP

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
tresesco
MVP
MVP

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)' ;

tresesco
MVP
MVP

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.

tresesco
MVP
MVP

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;

qv_testing
Specialist II
Specialist II
Author

Thank you very much