Подскажите, как составить запрос, не могу сообразить.
В итоговой таблице 2 либо 1 строки, к одному из полей надо применять функцию КОЛИЧЕСТВО в случае, если строк 2, либо МАКСИМУМ, если строка 1.
То есть что-то вроде такого:
ВЫБОР КОГДА СУММА(КОЛИЧЕСТВО(ВТ.Причина)) > 1 ТОГДА КОЛИЧЕСТВО(ВТ.Причина) ИНАЧЕ МАКСИМУМ(ВТ.Причина) КОНЕЦ
Но использовать вложенные агрегирующие функции нельзя. Как сделать по другому?
Сделай через временную таблицу
Выбрать Максимум(Поле1) Как П1, Количество(Поле1) Как П2
Поместить ВТ
;
Выбрать Выбор Когда ВТ.П2>1 Тогда ВТ.П2 Иначе ВТ.П1
Из ВТ
да нет .. какое красивое решение если у тебя несколько записей и Что-то должно посчитать их итог.
посчитать итог можно только циклом перебрав все записи - так 1с не умеет
или взяв агрегатную функцию.
Выбрать "Не смог" Причина, "Работа" Занятость поместить ТЗ
объединить все
Выбрать "Проспал", "Отпуск"
объединить все
Выбрать "Не смог", "Работа"
объединить все
Выбрать "Проспал", "Работа";
Выбрать Количество(Причина),Занятость из тз тз сгруппировать по Занятость имеющие Количество(Причина)>1
объединить все
Выбрать Максимум(Причина),Занятость из тз тз сгруппировать по Занятость имеющие Количество(Причина)<=1
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший