HAVING - добавлена в SQL поскольку условие WHERE не может использовать функции.
Синтаксис SQL HAVING
Пример SQL HAVING
Есть следующая таблица "Orders":
| O_Id | OrderDate | OrderPrice | Customer |
|---|---|---|---|
| 1 | 2008/11/12 | 1000 | Hansen |
| 2 | 2008/10/23 | 1600 | Nilsen |
| 3 | 2008/09/02 | 700 | Hansen |
| 4 | 2008/09/03 | 300 | Hansen |
| 5 | 2008/08/30 | 2000 | Jensen |
| 6 | 2008/10/04 | 100 | Nilsen |
Теперь мы хотим найти, какой из клиентов имеет сумму заказа меньшую 2000.
Выполним запрос:
Результат запроса:
| Customer | SUM(OrderPrice) |
|---|---|
| Nilsen | 1700 |
Теперь мы хотим узнать, имеют ли клиенты "Hansen" и "Jensen" заказ на сумму более 1500.
Выполним запрос:
Результат запроса:
| Customer | SUM(OrderPrice) |
|---|---|
| Hansen | 2000 |
| Jensen | 2000 |
SQL Having





Комментарии
SELECT Customer,SUM(Or derPrice) FROM Orders - (Orders) а вы таблицу назвали "Persons" !!!
сам дурак Цитировать
Теперь мы хотим найти, какой из клиентов имеет сумму заказа меньшую 2000.
и выводит 1 строку с суммой 1700 (Nilsen).
В самой таблице и близко такой суммы нет.
Как она появилась или высчиталась?
Как по мне, то должно вывестись 5 строк, за исключением строки, в которой сумма ровно 2000.
Или я не прав?
Тогда объясните. Цитировать
WHERE YEAR(ДАТА)=1996
А это что??? пишите грамотнее Цитировать
считаем SUM(OrderPrice) , т.е. сумму (OrderPrice) для каждого Customer'а.
Имеем две записи для Nilsen: 1600 и 100. SUM(OrderPrice) =1700 Цитировать
причём код, цена, количество у одного товара может быть разным, то есть мне необходимо выбрать из таблицы только тот товар, которого количество больше 0 и дата прихода минимальная Цитировать