Программирование в Microsoft SQL Server 2000



              

Использование фразы HAVING


Фраза HAVING ограничивает строки, возвращаемые фразой GROUP BY, таким же образом, как фраза WHERE ограничивает строки, возвращаемые фразой SELECT. В один оператор SELECT может быть включена и фраза WHERE, и фраза HAVING – при этом фраза WHERE применяется до операции группировки, а фраза HAVING – после нее.

Синтаксис фразы HAVING идентичен синтаксису фразы WHERE, за исключением того, что фраза HAVING может включать одну из функций агрегирования, включенных в список столбцов фразы SELECT. Заметим, однако, что вы должны повторять функцию агрегирования. Например, фраза HAVING, используемая в следующем операторе, является корректной:

SELECT PlantParts.PlantPart, Count(Oils.OilName) as NumberOfOils FROM Oils INNER JOIN PlantParts ON Oils.PlantPartID = PlantParts.PlantPartID GROUP BY PlantParts.PlantPart HAVING Count(Oils.OilName) > 3

Однако вы не можете использовать псевдоним для функции Count в фразе HAVING. Следовательно, приведенная ниже фраза HAVING не будет правильной:

HAVING NumberOfOils > 3

Создайте запрос с использованием ключевого слова HAVING в панели сетки Grid Pane

  1. Скройте панель SQL Pane
    и отобразите панель сетки Grid Pane.


    увеличить изображение

  2. Добавьте > 5 в ячейку Criteria столбца OilName.


    увеличить изображение

  3. Нажмите кнопку Run (Выполнить)
    в панели инструментов конструктора запросов, чтобы повторно исполнить запрос.


    увеличить изображение

Создайте запрос с использованием фразы HAVING в панели SQL Pane

  1. Скройте панель сетки Grid Pane
    и отобразите панель SQL Pane.



    увеличить изображение

  2. Измените фразу HAVING на HAVING(Count(Oils.OilName) < 5).


    увеличить изображение

  3. Нажмите кнопку Run (Выполнить)
    в панели инструментов конструктора запросов, чтобы повторно исполнить запрос. Конструктор запросов Query Designer отобразит только те элементы PlantParts, которым соответствуют менее пяти типов масел.


    увеличить изображение




Содержание  Назад  Вперед