Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

End-of-week values column added to each day

Hi guys,

I'm having hard time creating something like this:

base_date, week_num_overall, day_of_week, base_count, week_end_date, end of week base

2013-03-16, 65, 6, 44608, 2013-03-17, 44781

2013-03-17, 65, 7, 44781, 2013-03-17, 44781

2013-03-18, 66, 1, 45193, 2013-03-24, 46490

2013-03-19, 66, 2, 45455, 2013-03-24, 46490

2013-03-20, 66, 3, 45732, 2013-03-24, 46490

2013-03-21, 66, 4, 45997, 2013-03-24, 46490

2013-03-22, 66, 5, 46237, 2013-03-24, 46490

2013-03-23, 66, 6, 46375, 2013-03-24, 46490

2013-03-24, 66, 7, 46490, 2013-03-24, 46490

2013-03-25, 67, 1, 46794, 2013-03-31, 48437

2013-03-26, 67, 2, 47778, 2013-03-31, 48437

2013-03-27, 67, 3, 47598, 2013-03-31, 48437

2013-03-28, 67, 4, 47910, 2013-03-31, 48437

2013-03-29, 67, 5, 48175, 2013-03-31, 48437

2013-03-30, 67, 6, 48165, 2013-03-31, 48437

2013-03-31, 67, 7, 48437, 2013-03-31, 48437

only first and last columns are important here

I've got calendar with day_of_week column and table with base_count value for each day. I need to make on it the script level so I have date and the same base_count value from sunday for days 1-7, and then next value for whole week.

I could easily do that with following SQL:

select

c.full_date

,c.week_num_overall

,c.day_of_week

,b.base_count

,week_end_date

,(select B2.base_count from temp_active_base B2 where B2.base_date = c.week_end_date) as 'end of week base'

from temp_active_base b

join calendar c on b.base_date = c.full_date

order by 1

unfortunately the base_count values are something I load from QVD and I don't know how to put '(Select ...) as ... ' in Qlik script.

Can anyone help me here?

Thanks a lot!

Pawel

1 Solution

Accepted Solutions
m_woolf
Master II
Master II

If you load the data and order by Base Date descending, you can do something like this:

If( week_num_overall = peek(' week_num_overall'),

     peek('end of week base'),

     base_count) as end of week base;

View solution in original post

3 Replies
yduval75
Partner - Creator III
Partner - Creator III

LOAD

   week_num_overall

   day_of_week

   base_count

   week_end_date

from ..... (qvd);

m_woolf
Master II
Master II

If you load the data and order by Base Date descending, you can do something like this:

If( week_num_overall = peek(' week_num_overall'),

     peek('end of week base'),

     base_count) as end of week base;

Not applicable
Author

Hi Guys,

thank for your quick ansers. I just came up with an idea that it is just a matter of:

load

distinct

week_num_overall, base_count
where day_of_week = 7

then join on week_num_overall

however, I'll try your approaches just for education benefits

Thanks so much!