Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
 - 2402 онлайн
 
РЕШИТЬ (HAVING)

Предмет: Базы данных
Раздел предмета: SQL-запросы (оператор HAVING)
На представленном скриншоте изображён SQL-запрос, который выполняет выборку данных из двух таблиц: Товары и Склад. Таблицы связаны через поле [Наименование товара].
Разберём запрос по частям:
SELECT
Указывает, какие столбцы будут отображены в результате:
FROM
Задаёт таблицы для выборки данных. Используется оператор INNER JOIN, чтобы соединить таблицы Товары и Склад по полю [Наименование товара].
HAVING
Указывает условие, которое применяется к результату агрегирующих функций или группировки. В данном случае, условие:
Решение:
В этом запросе используется оператор HAVING, который обычно применяется для фильтрации данных после группировки. Однако в данном случае условие HAVING выполняет ту же функцию, что и WHERE, поскольку группировка отсутствует. Это не совсем корректно с точки зрения синтаксиса SQL, так как условие можно было бы перенести в WHERE.
Исправленный запрос:
SELECT 
    Товары.[Наименование товара] AS [Товар], 
    Товары.[Цена единицы], 
    Склад.[Количество]
FROM 
    Товары
INNER JOIN 
    Склад 
ON 
    Товары.[Наименование товара] = Склад.[Наименование товара]
WHERE 
    Товары.[Наименование товара] = Склад.[Наименование товара];Объяснение изменений:
Если вам нужно применить HAVING, то запрос должен включать группировку, например, подсчёт количества или суммы. Пример:
SELECT 
    Товары.[Наименование товара] AS [Товар], 
    SUM(Склад.[Количество]) AS [Общее количество]
FROM 
    Товары
INNER JOIN 
    Склад 
ON 
    Товары.[Наименование товара] = Склад.[Наименование товара]
GROUP BY 
    Товары.[Наименование товара]
HAVING 
    SUM(Склад.[Количество]) > 10;Здесь выводятся товары, общее количество которых на складе превышает 10.