Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Соединение таблиц с дополнительными условиями
При формировании соединения создается рабочая таблица, к которой применимы все операции, рассмотренные ранее: отбор нужных строк соединения (WHERE фраза), упорядочение получаемого результата (ORDER BY фраза) и агрегатирование данных (SQL-функции и GROUP BY фраза). Пример 18. Выручка на каждый день (только продукты без учета трудозатрат). SELECT z.Дата, SUM((s.Вес*n.Цена/1000)* z.Количество_порций) as Выручка FROM Заказы z, Состав s, Наличие n WHERE z.Блюдо=s.Блюдо and s.Продукт=n.Продукт GROUP BY z.Дата;
Соединение таблицы со своей копией. В ряде приложений возникает необходимость одновременной обработки данных какой-либо таблицы и одной или нескольких ее копий, создаваемых на время выполнения запроса. Например, при формировании Блюд (таблица БЛЮДА) возможен повторный ввод данных о каком-либо блюде с присвоением ему второго идентификатора. Для выявления таких ошибок, можно соединить таблицу Блюда с ее временной копией, установив в WHERE условие на равенство значений всех одноименных столбцов этих таблиц кроме столбцов с ID_Блюда (для последних надо установить условие неравенства значений). Временную копию таблицы можно сформировать, указав имя псевдонима за именем таблицы во фразе FROM. Пример 19. Найти ошибки при формировании таблицы Блюда (повтор блюд) SELECT К1.Блюдо, К1.Основа, К1.ID_Блюда as ID, К2.ID_Блюда as Дубликат FROM Блюда К1, Блюда К2 WHERE К1.Блюдо = К2.Блюдо AND К1.Основа = К2. Основа AND К1.ID_Блюда<> К2.ID_Блюда; Пример 20. Нарастающий итог количества заказанных порций для блюда с номером 15 SELECT z1.Дата, z1.Блюдо, SUM(z.Количество_порций) as Итог FROM Заказ z, Заказ z1 WHERE z.Блюдо=z1.Блюдо and z.Дата<=z1.Дата and z1.Блюдо=15 GROUP BY z1.Дата, z1.Блюдо
Date: 2015-09-18; view: 361; Нарушение авторских прав |