Дополнить созданный запрос - MySQL
Формулировка задачи:
Здравствуйте, есть вот такое задание
База данных, состоит из 4 таблиц.
ПОСТАВЩИКИ: Hомеp поставщика, Фамилия, Рейтинг, Гоpод
ДЕТАЛИ: Номер детали, Название, Цвет, Вес, Город
ИЗДЕЛИЯ: Номер изделия, Название, Город
ПОСТАВКИ: Номер поставщика, Номер детали, Номер изделия, Количество
Запрос должен соответствовать следующему предложению : Получить для каждого изделия информацию о поставщике, выполнившем более половины общего объема поставок для изделия. Если такого поставщика нет – написать ‘отсутствует’.
Я написал все, кроме :Если такого поставщика нет – написать ‘отсутствует’. Как это можно реализовать уже какой день над этим бьюсь?
Вот соответственно мой запрос :
CREATE TABLE number_postavchiki ( number_postavchik INT lastname nVarchar(100), rating FLOAT, city nvarchar(100) ) CREATE TABLE #ДЕТАЛИ ( number_tools INT name_tools nVarchar(100), colour nvarchar(100), weight FLOAT, city nvarchar(100) ) CREATE TABLE product( number_product INT name_product nVarchar(100), city nvarchar(100) ) CREATE TABLE delivery ( number_postavchiki INT number_tools INT number_product INT amount INT )
select lastname, rating, city from postavchiki join (select number_postavchik, number_product, amount from delivery) postav on postav.number_postavchik = postavchiki.number_postavchik join on (select delivery.number_postavchik as postavchik, delivery.number_product as Prod1, delivery.amount, sum(amount)/2 as sum_pol from delivery group by Prod1) summ on postav.amount > summ.sum_pol and postav.number_product = summ.Prod1;
Решение задачи: «Дополнить созданный запрос»
textual
Листинг программы
SELECT w.name_tools, e.name_product, w.city, e.city FROM delivery q, tools w, product e WHERE 1=1 AND w.number_tools=q.number_tools AND e.number_product=q.number_product AND w.city=e.city
Объяснение кода листинга программы
В данном коде выполняется запрос на выборку данных из трёх таблиц: delivery
, tools
и product
. Таблицы tools
и product
связываются с таблицей delivery
по полю number_product
и number_tools
соответственно. Также происходит связывание записей по полю city
в таблицах tools
и product
.
В результате запроса получаем следующие поля: name_tools
из таблицы tools
, name_product
из таблицы product
, city
из таблицы tools
и city
из таблицы product
.
Список элементов кода:
- SELECT - оператор выбора данных
- w.name_tools - название поля, которое будет выбрано из таблицы
tools
- e.name_product - название поля, которое будет выбрано из таблицы
product
- w.city - название поля, которое будет выбрано из таблицы
tools
- e.city - название поля, которое будет выбрано из таблицы
product
- FROM - оператор указания источника данных
- delivery q - название таблицы, из которой будут выбираться данные
- tools w - название таблицы, связанной с первой таблицей по полю
number_tools
- product e - название таблицы, связанной с первой таблицей по полю
number_product
- WHERE - оператор условия выборки данных
- 1=1 - условие, которое всегда выполняется
- AND - логический оператор объединения условий
- w.number_tools=q.number_tools - условие связи записей по полю
number_tools
- AND - логический оператор объединения условий
- e.number_product=q.number_product - условие связи записей по полю
number_product
- AND - логический оператор объединения условий
- w.city=e.city - условие связи записей по полю
city
- GROUP BY - оператор группировки данных
- ORDER BY - оператор сортировки данных
- LIMIT - оператор ограничения количества выводимых данных
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д