Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Multicvet от 01 августа 2014, 06:38:26

Название: Выборка суммы в максимальных датах
Отправлено: Multicvet от 01 августа 2014, 06:38:26
Привет всем!

Наверное глупый вопрос для опытных пользователей QV, а я вот застрял, всю голову сломал.

Есть у меня таблица с остатками по клиентам на дату:

ООО Кубик | 01.01.2014 | 10 шт.
ООО Кубик | 01.02.2014 | 20 шт.
ООО Мячик | 01.01.2014 | 10 шт.
ООО Мячик | 01.08.2014 | 5 шт.
ООО Домик | 01.06.2014 | 7 шт.

Мне нужно вывести остаток на максимальную дату по каждому клиенту:
ООО Кубик | 20 шт
ООО Мячик | 5 шт
ООО Домик | 7 шт

Пробовал по разному, даже так sum(if([Дата]=Max ([Дата]),Остаток)) - без результата...
Название: Re: Выборка суммы в максимальных датах
Отправлено: admin от 04 августа 2014, 04:35:25
Привет,
самое простое, на мой взгляд:
tableA:
LOAD *,Trim(Фирма)&num(Дата) as KeyTmp INLINE [
    Фирма, Дата, Кол-во
    ООО Кубик, 01.01.2014, 10
    ООО Кубик, 01.02.2014, 20
    ООО Мячик, 01.01.2014, 10
    ООО Мячик, 01.08.2014, 5
    ООО Домик, 01.06.2014, 7
];

left join
load Trim(Фирма)&Max(Дата) as KeyTmp,
1 as Флаг
Resident tableA
Group by Фирма;
drop Field KeyTmp;

И в формуле применяем Set analyse
Sum ({<Флаг={'1'}>}[Кол-во])
[smg id=30]
Название: Re: Выборка суммы в максимальных датах
Отправлено: admin от 04 августа 2014, 05:56:49
Поясню замысел:
В скрипте мы просто формируем флаг для записи с максимальной датой по каждому клиенту.
Для чего используем временный ключ, который по завершении просто удаляем.
Название: Re: Выборка суммы в максимальных датах
Отправлено: Multicvet от 04 августа 2014, 06:23:59
Спасибо!
+ еще функционал настройки позволяет ограничить выборку (см. скрин)
Название: Re: Выборка суммы в максимальных датах
Отправлено: admin от 04 августа 2014, 08:40:30
Ну я бы не советовал в данном случае.
Рекомендую сверять результат с эталоном.