Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






SELECT b.Блюдо, m.Дата, SUM( z.Количество_порций)





FROM (Заказы z RIGHT JOIN Меню m ON m.Блюдо = z. Блюдо

and m. Дата = z. Дата)

JOIN Блюда b ON m.Блюдо = b.ID_ Блюдо

WHERE m.Дата = '2011-01-02'

Результат  
Блюдо Дата  
Бефстроганов 2011-01-02  
Кофе на молоке 2011-01-02  
Паштет из рыбы 2011-01-02 NULL
Салат летний 2011-01-02  
Салат мясной 2011-01-02 NULL
Судак по-польски 2011-01-02  
Суп молочный 2011-01-02 NULL
Суп харчо 2011-01-02 NULL
Суфле яблочное 2011-01-02  

GROUP BY b.Блюдо, m.Дата;

Данный запрос позволяет (благодаря правому внешнему соединению) вывести на экран все блюда из меню на 02.01.2011, даже если их никто не заказывал.

Глава 4. Подзапросы и производные таблицы

С помощью SQL вы можете вкладывать запросы внутрь друг друга. В этом случае говорят о запросе с подзапросом.

Производная таблица.

Синтаксис SQL позволяет в предложении FROM кроме базовых таблиц использовать любое выражение, генерирующее табличную структуру. Рассмотрим пример

Пример 24.

Выдать меню на 02-01-2011.

SELECT a.Блюдо, cast(a. Стоимость as numeric(6,2)) as [Цена за порцию]

FROM

(SELECT b.Блюдо, b.ID_блюда,

SUM(s.Вес*n.Цена/1000)+b.Труд as Стоимость

FROM (Блюда b JOIN Состав s ON b.ID_блюда = s.Блюдо)

JOIN Наличие n ON s.Продукт = n.Продукт

GROUP BY b.Блюдо, b.ID_блюда, b.Труд) a

JOIN Меню m ON m.Блюдо = a.ID_блюда

WHERE Дата = '2011-01-02'

ORDER BY Вид;

Результат  
Блюдо Цена за порцию
Салат летний 25.00
Салат мясной 38.63
Паштет из рыбы 12.04
Суп харчо 48.50
Суп молочный 35.97
Бефстроганов 55.15
Судак по-польски 13.37
Суфле яблочное 40.93
Кофе на молоке 12.02

Производная таблица — это весь запрос SELECT, помещённый в скобках (скобки являются частью синтаксиса и предназначены для выделения запроса). В примере производная таблица имеет псевдоним а.

Производная таблица — это общий случай подзапроса, запроса, который вложен в другой запрос или зависит от него. Производные таблицы чрезвычайно полезны в SQL.

В запросе используется функция преобразования типа —

Cast(a. Стоимость as numeric(6,2))

её синтаксис:

CAST (выражение AS тип_данных [ (длина) ])

 







Date: 2015-09-18; view: 337; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию