Разработка приложений баз данных в Delphi. Шейкер Т.Д. - 104 стр.

UptoLike

Составители: 

104
Пример 4.12. Определить дату продажи заказа с максимальной стоимо-
стью. Вывести дату продажи и стоимость.
SELECT SaleDate,ItemsTotal FROM orders
WHERE ItemsTotal=(SELECT max(ItemsTotal) FROM orders)
Пример 4.13. Определить даты оформления заказов, стоимость которых
превысила среднее значение, и указать для этих заказов превышение над сред-
ним уровнем.
SELECT OrderNo, SaleDate, ItemsTotal,
ItemsTotal-(SELECT avg(ItemsTotal) FROM orders)
FROM orders
WHERE ItemsTotal>(SELECT avg(ItemsTotal) FROM orders)
Пример 4.14. Вывести имя, фамилию, табельный номер сотрудника,
оформившего заказ максимальной стоимости, и стоимость этого заказа.
Так как требуемые сведения находятся в разных таблицах, то для получе-
ния результата надо сформировать запрос, использующий соединение данных
из двух таблиц. Кроме того, в запрос следует добавить подзапрос, определяю-
щий максимальную стоимость заказа.
SELECT FirstName,LastName,EmpNo,ItemsTotal
FROM employee e join orders o
ON E.EmpNo=O.EmpNo AND
ItemsTotal=(SELECT max(ItemsTotal) FROM orders)
4.6.3.Подзапросы, возвращающие множество значений
Подзапросы могут возвращать не одно, а множество значений. В таких
случаях данные помещаются во временную таблицу, которая может использо-
ваться только в том месте, где она появилась в подзапросе.
Если требуется сравнить полученные значения в предложениях
WHERE
или
HAVING, то используют операции IN, NOT IN, ALL, SOME, ANY, EXISTS, NOT
EXISTS
, которые работают с множеством значений.
{WHERE|HAVING} выражение [NOT] IN (подзапрос);
{WHERE|HAVING} выражение
оператор_сравнения {ALL|SOME|ANY}(подзапрос);
{WHERE|HAVING} [NOT] EXISTS (подзапрос);
     Пример 4.12. Определить дату продажи заказа с максимальной стоимо-
стью. Вывести дату продажи и стоимость.
SELECT SaleDate,ItemsTotal FROM orders
WHERE ItemsTotal=(SELECT max(ItemsTotal) FROM orders)
     Пример 4.13. Определить даты оформления заказов, стоимость которых
превысила среднее значение, и указать для этих заказов превышение над сред-
ним уровнем.
SELECT OrderNo, SaleDate, ItemsTotal,
           ItemsTotal-(SELECT avg(ItemsTotal) FROM orders)
FROM orders
WHERE ItemsTotal>(SELECT avg(ItemsTotal) FROM orders)
     Пример 4.14. Вывести имя, фамилию, табельный номер сотрудника,
оформившего заказ максимальной стоимости, и стоимость этого заказа.
     Так как требуемые сведения находятся в разных таблицах, то для получе-
ния результата надо сформировать запрос, использующий соединение данных
из двух таблиц. Кроме того, в запрос следует добавить подзапрос, определяю-
щий максимальную стоимость заказа.
SELECT FirstName,LastName,EmpNo,ItemsTotal
FROM employee e join orders o
ON E.EmpNo=O.EmpNo AND
ItemsTotal=(SELECT max(ItemsTotal) FROM orders)

     4.6.3.Подзапросы, возвращающие множество значений
     Подзапросы могут возвращать не одно, а множество значений. В таких
случаях данные помещаются во временную таблицу, которая может использо-
ваться только в том месте, где она появилась в подзапросе.
     Если требуется сравнить полученные значения в предложениях WHERE
или HAVING, то используют операции IN, NOT IN, ALL, SOME, ANY, EXISTS, NOT
EXISTS, которые работают с множеством значений.
{WHERE|HAVING} выражение [NOT] IN (подзапрос);
{WHERE|HAVING} выражение
           оператор_сравнения {ALL|SOME|ANY}(подзапрос);
{WHERE|HAVING} [NOT] EXISTS (подзапрос);

                                      104