|
Запрос: СУММА(КОЛИЧЕСТВО(ВТ.Причина)) либо в МАКСИМУМ(ВТ.Причина) в одном поле - как?
| ☑ |
0
N-S-B
24.07.19
✎
12:31
|
Подскажите, как составить запрос, не могу сообразить.
В итоговой таблице 2 либо 1 строки, к одному из полей надо применять функцию КОЛИЧЕСТВО в случае, если строк 2, либо МАКСИМУМ, если строка 1.
То есть что-то вроде такого:
ВЫБОР КОГДА СУММА(КОЛИЧЕСТВО(ВТ.Причина)) > 1 ТОГДА КОЛИЧЕСТВО(ВТ.Причина) ИНАЧЕ МАКСИМУМ(ВТ.Причина) КОНЕЦ
Но использовать вложенные агрегирующие функции нельзя. Как сделать по другому?
|
|
1
garmosha
24.07.19
✎
12:33
|
количество это агрегатная функция..
тут вот пишут, что я брежу очень часто ..
но некоторые это еще в коде оформляют..
|
|
2
garmosha
24.07.19
✎
12:34
|
и еще .. узнайте функцию имеющие .. хевинг .. она вам поможет.
|
|
3
garmosha
24.07.19
✎
12:35
|
но тоже без групировки и агрегатов никак.
|
|
4
dka80
24.07.19
✎
12:38
|
Сделай через временную таблицу
Выбрать Максимум(Поле1) Как П1, Количество(Поле1) Как П2
Поместить ВТ
;
Выбрать Выбор Когда ВТ.П2>1 Тогда ВТ.П2 Иначе ВТ.П1
Из ВТ
|
|
5
N-S-B
24.07.19
✎
12:40
|
(4) Так в итоге и сделал, но есть ощущение, что есть решение красивее )
|
|
6
garmosha
24.07.19
✎
12:41
|
да нет .. какое красивое решение если у тебя несколько записей и Что-то должно посчитать их итог.
посчитать итог можно только циклом перебрав все записи - так 1с не умеет
или взяв агрегатную функцию.
|
|
7
catena
24.07.19
✎
12:41
|
Выбрать "Не смог" Причина, "Работа" Занятость поместить ТЗ
объединить все
Выбрать "Проспал", "Отпуск"
объединить все
Выбрать "Не смог", "Работа"
объединить все
Выбрать "Проспал", "Работа";
Выбрать Количество(Причина),Занятость из тз тз сгруппировать по Занятость имеющие Количество(Причина)>1
объединить все
Выбрать Максимум(Причина),Занятость из тз тз сгруппировать по Занятость имеющие Количество(Причина)<=1
|
|
8
N-S-B
24.07.19
✎
12:45
|
(7) Тоже интересное решение)
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой