|
Получить несколько максимальных значений в запросе с группировкой |
☑ |
0
Melcor
20.07.19
✎
09:02
|
Добрый день. Помогите решить не тривиальную задачку. Есть запрос по регистру продаж со след полями: РодительНом, Сезон, ХарактеристикаНоменклатуры, Количество
Получаем подобную таблицу:
Ном1 - Сезон1 - Харка1 - 10 шт.
Ном1 - Сезон1 - Харка2 - 5 шт.
Ном1 - Сезон1 - Харка3 - 5 шт.
Ном1 - Сезон1 - Харка4 - 1 шт.
Ном1 - Сезон2 - Харка5 - 8 шт.
Ном1 - Сезон2 - Харка6 - 3 шт.
Ном1 - Сезон2 - Харка7 - 5 шт.
Ном1 - Сезон2 - Харка8 - 4 шт.
Ном2 - Сезон1 - Харка9 - 7 шт.
Ном2 - Сезон1 - Харка10 - 7 шт.
Ном2 - Сезон1 - Харка11 - 5 шт.
Ном2 - Сезон1 - Харка12 - 4 шт.
Нужно получить по первым двум группировкам 2 максимального значения количества, но если кол-ва одинаковые то считаем их как за одно т.е.
на выходе получаем:
Ном1 - Сезон1 - Харка1 - 10 шт.
Ном1 - Сезон1 - Харка2 - 5 шт.
Ном1 - Сезон1 - Харка3 - 5 шт.
Ном1 - Сезон2 - Харка5 - 8 шт.
Ном1 - Сезон2 - Харка7 - 5 шт.
Ном2 - Сезон1 - Харка9 - 7 шт.
Ном2 - Сезон1 - Харка10 - 7 шт.
Ном2 - Сезон1 - Харка11 - 5 шт.
Понимаю как получить макс по всей таблице:
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
ВТ_Данные.Количество КАК Количество,
ВТ_Данные.НомРод,
ВТ_Данные.ХарактеристикаНоменклатуры,
ВТ_Данные.Сезон
ПОМЕСТИТЬ ВТ_Максимальные
ИЗ
ВТ_Данные КАК ВТ_Данные
УПОРЯДОЧИТЬ ПО
Количество УБЫВ
;
ВЫБРАТЬ
ВТ_Данные.НомРод,
ВТ_Данные.ХарактеристикаНоменклатуры,
ВТ_Данные.Сезон,
ВТ_Данные.Количество
ИЗ
ВТ_Данные КАК ВТ_Данные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Максимальные КАК ВТ_Максимальные
ПО ВТ_Данные.Количество = ВТ_Максимальные.Количество
а как чтобы по по каждой группе номенклатуры родитель и сезону ума не приложу
|
|
1
lodger
20.07.19
✎
10:22
|
в ТЗ посчитай и загрузи обратно.
|
|
2
Melcor
20.07.19
✎
10:57
|
(1) Это самый крайний вариант, но нужно именно в запросе
|
|
3
lodger
20.07.19
✎
11:04
|
(2) в запросе это много пакетов и множество ненужных ВТ.
сперва берешь топ каждой группе,
берешь топ2 за вычетом топ1
суммируешь топ1 и топ2 группы, берешь их по значениям.
берешь из ВТ0 то что входит в группы и не меньше по значениям.
|
|
4
Melcor
20.07.19
✎
11:09
|
(3) Не в курил немного, можно для тупых чуть подробнее пжл
|
|
5
МихаилМ
20.07.19
✎
11:09
|
|
|
6
Сияющий в темноте
20.07.19
✎
11:12
|
А если взять первый маесимум,потом второй,а потом выбрать все,что по количеству больше или равно полученному второму максимуму?
|
|
7
Melcor
20.07.19
✎
11:16
|
(5) Таки да, но работает только если мне из всей таблицы нужно получить макс значения, а мне надо макс значения харок но в каждой группе, т.е. макс харок в разрезе НомРод и Сезон
|
|
8
Melcor
20.07.19
✎
11:17
|
И если я возьму запросом только НомРод и Сезон, то не смогу подключится левым соединением т.к. в вложенном запросе нельзя использовать ВТ
|
|