Добавил:
@wequalwo Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SQL / Ivanov_S_0392_sql_5

.docx
Скачиваний:
0
Добавлен:
08.09.2024
Размер:
116.24 Кб
Скачать

-- Вывести имена предприятий с указанием города и наименования выполняемых ими заказов, отсортировав по городу.

-- (Запрос выполнить 2-мя способами, соединяя таблицы во FROM и в WHERE).

SELECT cy.cy_name, cy.cy_city, ce.ce_name

FROM company AS cy INNER JOIN execution AS e ON cy.cy_id = e.cy_id INNER JOIN commande AS ce ON e.ce_id = ce.ce_id

GROUP BY cy.cy_name, cy.cy_city, ce.ce_name

ORDER BY cy.cy_city;

SELECT cy.cy_name, cy.cy_city, ce.ce_name

FROM company AS cy, execution AS e, commande AS ce

WHERE cy.cy_id = e.cy_id AND e.ce_id = ce.ce_id

ORDER BY cy.cy_city;

-- Сколько заказов каждого статуса?

SELECT status, COUNT(ce_id)

FROM reference LEFT OUTER JOIN commande ON reference.re_id = commande.re_id

GROUP BY status;

-- Сколько заказов каждого статуса?

SELECT status, COUNT(ce_id)

FROM reference LEFT OUTER JOIN commande ON reference.re_id = commande.re_id

GROUP BY status;

-- Сколько заказов выполняется в каждом городе?

SELECT cy_city, COUNT(*)

FROM company LEFT JOIN execution ON company.cy_id = execution.cy_id

GROUP BY cy_city;

-- Вывести названия предприятий, для которых не запланировано ни одного заказа

-- (Использовать подзапрос в предложении WHERE)

INSERT INTO Company (cy_id, cy_name, cy_adress, cy_phone)

VALUES ('00A04', 'emty', 'unknown', '0(000)000-00-00');

SELECT company.cy_name

FROM company

WHERE company.cy_id NOT IN (SELECT execution.cy_id FROM execution);

-- Вывести перечень городов, в которых больше одного предприятия (Использовать подзапрос в предложении FROM).

SELECT DISTINCT bb.cy_city

FROM (

SELECT cy_city, COUNT(*)

FROM company

GROUP BY cy_city

HAVING COUNT(*) > 1

) AS bb JOIN company AS aa ON aa.cy_city = bb.cy_city;

-- Сколько выполненных и сколько невыполненных заказов у каждого предприятия? (Использовать подзапросы в предложении SELECT).

SELECT comp.cy_name,

(

SELECT COUNT(*)

FROM company AS c1, execution AS e1

WHERE c1.cy_name = comp.cy_name AND comp.cy_id = e1.cy_id AND e1.e_status = '1'

) AS mi1,

(

SELECT COUNT(*)

FROM company AS c1, execution AS e1

WHERE c1.cy_name = comp.cy_name AND comp.cy_id = e1.cy_id AND e1.e_status = '0'

) AS mi2

FROM company AS comp

GROUP BY comp.cy_name, comp.cy_id

ORDER BY comp.cy_name;

Соседние файлы в папке SQL