Ответ в теме: 1с запрос имеющие
Новые заметки › Форумы › Программирование в 1с › 1с запрос имеющие › Ответ в теме: 1с запрос имеющие
30 марта, 2020 в 10:23 дп
#5686
Хранитель
Привет. Конструкцию “ИМЕЮЩИЕ” используют в запросе для наложения условий на значения агрегатных функций (СУММА, СРЕДНЕЕ, МИНИМУМ и т.д.).
Допустим мы хотим в запросе отобрать исполнителей, на которых висит более 1 невыполненной задачи:
1С (Код)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗадачаИсполнителя.Исполнитель КАК Исполнитель, | СУММА(1) КАК КоличествоЗадач |ИЗ | Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя |ГДЕ | НЕ ЗадачаИсполнителя.Выполнена | |СГРУППИРОВАТЬ ПО | ЗадачаИсполнителя.Исполнитель | |ИМЕЮЩИЕ | СУММА(1) > 1"; //Результат: //Исполнитель КоличествоЗадач //Администратор 3 //Пользователь 2 |
Если бы мы не знали о конструкции “ИМЕЮЩИЕ”, то сначала мы бы сгруппированную выборку поместили во временную таблицу, а уже потом в ней через конструкцию “ГДЕ” получили бы нужный результат.
В конструкторе запроса программа сама подставит условие “Имеющие” если в произвольном условии указать агрегатную функцию: