Неофициальный форум разработчиков QlikView и Qlik Sense

Форум разработчиков QlikView и Qlik Sense. Получи любые ответы на вопросы по QlikView и Qlik Sense в течении нескольких часов!

Вы не вошли.

Готовые решения на платйорме QlikView

#1 2018-11-20 19:16:02

Oleandr
Участник
Зарегистрирован: 2018-11-20
Сообщений: 1
WindowsMozilla 5.0

Работа с диапазонами дат

Добрый день!
Помогите, с помощью, каких функций можно выполнить следующую задачку. Исходный данные
Product    Date from     Date to           QTY
aaa          10.10.2018     15.10.2018    90
bbb          18.10.2018     22.10.2018    78
ccc          12.10.2018     16.10.2018    62
ddd          20.10.2018     24.10.2018    100

На выходе нужно получить следующее:
Допуская, что в каждый день из всего периода производства по продукту производилось одинаковое кол-во, например

Product  Date from    Date to          10.10.18   11.10.18  12.10.18  13.10.18 14.10.18  15.10.18  16.10.18  17.10.18  18.10.18  19.10.18 
aaa       10.10.2018  15.10.2018        18             18            18            18          18           18            -             -               -           -
ccc        12.10.2018  16.10.2018         -               -              16            16          16           16           16           -               -           -

...

Спасибо!

Неактивен

#2 2019-03-01 11:42:12

Bao
Участник
Зарегистрирован: 2018-11-22
Сообщений: 16
Windows 7Chrome 72.0.3626.119

Re: Работа с диапазонами дат

//Загрузим календарик
Table:
    load
    Date(MakeDate(2018) + IterNo() - 1) as Date
    autogenerate 1
    while (Date(MakeDate(2018) + IterNo() - 1)) < MakeDate(2019);


//Ваша табличка
Intervals:
LOAD * INLINE [
Product,    Date_from,     Date_to,           QTY
aaa,          10.10.2018,     15.10.2018,    90
bbb,          18.10.2018,     22.10.2018,    78
ccc,          12.10.2018,     16.10.2018,    62
ddd,          20.10.2018,     24.10.2018,    100
];



IntervalMatch (Date) left join (Table) load Date_from,Date_to resident Intervals;
left join  (Table) LOAD distinct * RESIDENT Intervals;
drop table Intervals;
inner join (Table) load  Product, (QTY)/(count(QTY)) as Parts //Поле Parts - искомое Вами
resident Table where Len(Date_from)>0  group by Product,QTY;

Неактивен

Сейчас в этой теме форумчан: 0, гостей: 1
[Bot] CCBot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.016 сек, 10 запросов выполнено - Использовано памяти: 1.59 Мбайт (Пик: 1.72 Мбайт) ]