Когда используется директива «ИМЕЮЩИЕ» в языке запросов 1С? Отличие от условия «ГДЕ» (1С: Программисту: Язык запросов: «ИМЕЮЩИЕ») — 1C-h
 

Когда используется директива «ИМЕЮЩИЕ» в языке запросов 1С? Отличие от условия «ГДЕ» (1С: Программисту: Язык запросов: «ИМЕЮЩИЕ»)

Вопрос Когда используется директива «ИМЕЮЩИЕ» в языке запросов 1С? Чем «ИМЕЮЩИЕ» отличается от условия «ГДЕ»?
Ответ
Отличие директивы «ИМЕЮЩИЕ» от условия «ГДЕ» состоит в том, что ее можно использовать для агрегатных функций. Обязательным условием при этом является использование группировки по остальным полям.
Пример:

"ВЫБРАТЬ
|    тбЗадания.Задание,
|    СУММА(тбЗадания.КоличествоИсполнителей)  КАК КоличествоИсполнителей
|ИЗ
|    РегистрСведений.устВыполняемыеЗадания КАК тбЗадания
|ГДЕ
|    тбЗадания.Выполнение
|СГРУППИРОВАТЬ ПО
|    тбЗадания.Задание
|ИМЕЮЩИЕ
|    СУММА(тбЗадания.КоличествоИсполнителей)  > 0"

При этом есть одна особенность. Не смотря на то, что аналогичная директива на языке запросов SQL (HAVING) позволяет указать псевдоним поля, на языке запросов 1С псевдоним поля указать нельзя. Т.е. в конце нельзя написать: «ИМЕЮЩИЕ КоличествоИсполнителей > 0», — это будет неправильно, нужно полностью продублировать всю функцию (в нашем случае «СУММА(тбЗадания.КоличествоИсполнителей)»)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Next Post

Языки, поддерживаемые плагином подсвечивания синтаксиса языка (сайт на WordPress плагин WP-Syntax)

Вт Сен 21 , 2010
Языки, поддерживаемые плагином подсвечивания синтаксиса языка. За основу взят плагин WP-Syntax от Ryan McGeary Если в тексте комментария нужно вставить текст модуля 1С, то для того, чтобы был подсвечен синтаксис, на этом сайте предлагается текст модуля специальным тегом «pre»: ...текст модуля... Причем