Привет всем!
Наверное глупый вопрос для опытных пользователей 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 ([Дата]),Остаток)) - без результата...
Привет,
самое простое, на мой взгляд:
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]
Поясню замысел:
В скрипте мы просто формируем флаг для записи с максимальной датой по каждому клиенту.
Для чего используем временный ключ, который по завершении просто удаляем.
Спасибо!
+ еще функционал настройки позволяет ограничить выборку (см. скрин)
Ну я бы не советовал в данном случае.
Рекомендую сверять результат с эталоном.