|
Получить несколько максимальных значений в запросе с группировкой | ☑ | ||
---|---|---|---|---|
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
|
И если я возьму запросом только НомРод и Сезон, то не смогу подключится левым соединением т.к. в вложенном запросе нельзя использовать ВТ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |