Modber Сообщество
профессионалов по 1С

ИМЕЮЩИЕ (having) в запросе 1с

  
Сообщений: 6

0
Объясните пожалуста кратко и точно, что значит такой вот оператор. Я интуитивно то понимаю, но все равно до конца понять не могу.
Оператор "ГДЕ" ставит условия на исходные поля запроса, тоесть до их группировки и расчета агрегатных функций.
А оператор "ИМЕЮЩИЕ" ставит условия уже на сгруппированный запрос и уже как на результат агрегатных функций над полями.
Правильно это я понимаю?
Сообщений: 4

0
Если ты будешь использовать "Где" то понятное дело у тебя будет ошибка!!! Замени имеюшие на где и будет дело.
Сообщений: 69

+1
kettyr, верно.
Если нужно сгруппировать по поля и что-то вычислить, но в итоге выбрать только записи, удовлетворяющие условию по высчитываемым по группировкам полям, то есть два варианта
1) сделать это во вложенном запросе и во внешнем отбирать по расчетному полю
2) за счет "ИМЕЮЩИЕ" отфильтровать по результатам группировки
Например:
Код 1C:
  1. ВЫБРАТЬ
  2. КонтактныеЛица.Фамилия,
  3. СУММА(1) КАК Кво
  4. ПОМЕСТИТЬ Фамилии
    ИЗ
  5. Справочник.КонтактныеЛица КАК КонтактныеЛица
  6.  
  7. СГРУППИРОВАТЬ ПО
  8. КонтактныеЛица.Фамилия
  9. ИМЕЮЩИЕ СУММА(1) > 3 // редкие не нужны, берем только часто используемые
  10. ;
В начало страницы 
|
Перейти на форум: