Skip to main content
Announcements
YOUR OPINION MATTERS! Please take the Qlik Experience survey you received via email. Survey ends June 14.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dymanic loop

Hello All,

I have table "dbo.ACTION" which is found in my database "HN_PRODUCTION"

However, we have just created a new database "HN_BACKUP" but now the table are as follows:

>HN_BACKUP

     >Tables

          >dbo.ACTION_2015_06

          >dbo.ACTION_2015_07

          >dbo.ACTION_2015_08

          >dbo.ACTION_2015_09

          >dbo.ACTION_2015_10

          >dbo.ACTION_2015_11

          >dbo.ACTION_2015_12

          >dbo.ACTION_2016_01

The issue is that I have to load only the last three months.

To resume I have to load the below tables:

>dbo.ACTION which is HN_PRODUCTION

>dbo.ACTION_2015_11

>dbo.ACTION_2015_12

>dbo.ACTION_2016_01

I managed to load the table using the script below:

Action:

LOAD ActionLocalTime,

    Date(Floor(ActionLocalTime)) AS Date,

    AgentId as FirstAgent,

    Campaign as CampaignId,

    Duration as DurationPre,

    State

SQL SELECT *

FROM "HN_PRODUCTION".dbo.ACTION where NextState='96';

FOR Each a in '2015_12','2015_11','2015_10','2016_01'

Action:

LOAD ActionLocalTime,

    Date(Floor(ActionLocalTime)) AS Date,

    AgentId as FirstAgent,

    Campaign as CampaignId,

    Duration as DurationPre,

    State

SQL SELECT *

FROM "HN_BACKUP".dbo.ACTION_$(b) where NextState='96';

HOWEVER, for next month a new table will be created in "HN_BACKUP" as "dbo.ACTION_2016_02" and I will need to load the data of the tables below:

>dbo.ACTION which is HN_PRODUCTION

>dbo.ACTION_2015_12

>dbo.ACTION_2016_01

>dbo.ACTION_2016_02

I have around 35 qvw using these table.

Any idea on how to I can do it.

Kind Regards,

Hasvine

1 Solution

Accepted Solutions
tresesco
MVP
MVP

May be like:

for each fle in

                        Date(AddMonths(Today(),-3), 'YYYY_MM'),

           Date(AddMonths(Today(),-2), 'YYYY_MM'),

           Date(AddMonths(Today(),-1), 'YYYY_MM')

View solution in original post

4 Replies
mightyqlikers
Creator III
Creator III

Hi,

try like below

Action:

LOAD ActionLocalTime,

    Date(Floor(ActionLocalTime)) AS Date,

    AgentId as FirstAgent,

    Campaign as CampaignId,

    Duration as DurationPre,

    State

SQL SELECT *

FROM "HN_PRODUCTION".dbo.ACTION where NextState='96';

for each fle in '2015_12','2015_11','2015_10','2016_01'

load

       * ;

sql

select * from dbo.ACTION_$(fle);

next $(fle)

Regards
$@M

Not applicable
Author

Hi Sam,

Can I make te below dynamic so that it calculate the last 3 months?

for each fle in '2015_12','2015_11','2015_10','2016_01'


Thanks,


Hasvine

tresesco
MVP
MVP

May be like:

for each fle in

                        Date(AddMonths(Today(),-3), 'YYYY_MM'),

           Date(AddMonths(Today(),-2), 'YYYY_MM'),

           Date(AddMonths(Today(),-1), 'YYYY_MM')

Not applicable
Author

Hello Tresesco,

I works.

Thanks,

Hasvine