Файл: Задание Разработка модели предметной области.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 188

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


2.2.1. Поставщики:

  1. CREATE VIEW "DirectorContractor" AS

  2. SELECT Name, "City", "Reliability" FROM "Contractor"

  3. ORDER BY "Reliability", "City", Name;

  4.  

  5. SELECT * FROM "DirectorContractor";

  6.  



Рисунок 9 – Представление «Директор-поставщики»

2.2.2. Детали:

  1. CREATE VIEW "DirectorDetail" AS

  2. SELECT Name, ROUND("Price"/1000.0, 3) AS "Price, K RUB", "Color", "High cost"

  3. FROM "Detail"

  4. ORDER BY "Price, K RUB" DESC, Name;

  5.  

  6. SELECT * FROM "DirectorDetail";

  7.  



Рисунок 10 – Представление «Директор-детали»

2.2.3. Проекты:

  1. CREATE VIEW "DirectorProject" AS

  2. SELECT Name, "City", "Budget" FROM "Project"

  3. ORDER BY "Budget" DESC, "City", Name;

  4.  

  5. SELECT * FROM "DirectorProject";



Рисунок 11 – Представление «Директор-проекты»
2.2.4. Поставки:

  1. CREATE VIEW "DirectorDelivery" AS

  2. SELECT

  3. "Detail".Name AS "Name Detail",

  4. "Detail"."Color" AS "Color Detail",

  5. "Detail"."High cost" AS "High cost",

  6. "Contractor".Name AS "Name Contractor",

  7. "Contractor"."City" AS "City Contractor",

  8. "Contractor"."Reliability" AS "Reliability",

  9. "Delivery"."Amount" AS "Amount",

  10. ROUND("Delivery"."Amount" * "Weight"/1000.0, 3) AS "Weight, Kg",

  11. ROUND("Delivery"."Amount" * "Price"/1000.0, 3) AS "Price, K RUB"

  12. FROM "Detail", "Contractor", "Delivery"

  13. WHERE "Detail_ID" = "Detail".id AND "Contractor_ID" = "Contractor".id

  14. ORDER BY "High cost", "Reliability", "City Contractor", "Name Detail",

  15. "Name Contractor", "Price, K RUB" DESC, "Weight, Kg" DESC;

  16.  

  17. SELECT * FROM "DirectorDelivery";



Рисунок 12 – Представление «Директор-поставки»

Задание 6. Разработка запросов
Экономист должен подготавливать следующие наборы отчетов:

1) список всех, надежных, ненадежных поставщиков.

2) список всех, дорогих, дешевых деталей.

3) список всех проектов, проектов из заданного города, проектов c бюджетом в заданном диапазоне.

4) список всех поставок, поставок дорогих и дешевых деталей, поставок от надежных и ненадежных поставщиков, поставок со стоимостью из заданного диапазона.
Запросы экономиста.

1. Список всех, надежных, ненадежных поставщиков:

  1. SELECT * FROM "Contractor";




Рисунок 13 – Все поставщики

  1. SELECT * FROM "Contractor"

  2. WHERE "Reliability" = 'Надёжный';



Рисунок 14 – Надёжные поставщики

  1. SELECT * FROM "Contractor"

  2. WHERE "Reliability" = 'Ненадёжный';



Рисунок 15 – Ненадёжные поставщики
2. Список всех, дорогих, дешевых деталей:

  1. SELECT * FROM "Detail";



Рисунок 16 – Все детали

  1. SELECT * FROM "Detail"

  2. WHERE "High cost" = 'Дорогая';



Рисунок 17 – Дорогие детали

  1. SELECT * FROM "Detail"

  2. WHERE "High cost" = 'Дешёвая';



Рисунок 18 – Дешёвые детали
3. Список всех проектов, проектов из заданного города, проектов c бюджетом в заданном диапазоне:

  1. SELECT * FROM "Project";



Рисунок 19 – Все проекты

  1. SELECT * FROM "Project"

  2. WHERE "City" = 'Chelyabinsk';



Рисунок 20 – Проекты из заданного города

  1. SELECT * FROM "Project"

  2. WHERE "Budget" > 10000 AND "Budget" <= 100000;



Рисунок 21 – Проекты с бюджетом в заданном диапазоне
4. Список всех поставок, поставок дорогих и дешевых деталей, поставок от надежных и ненадежных поставщиков, поставок со стоимостью из заданного диапазона:

  1. SELECT * FROM "Delivery";




Рисунок 22 – Все поставки


  1. SELECT * FROM "Delivery"

  2. INNER JOIN "Detail"

  3. ON "Delivery"."Detail_ID" = "Detail".id AND "High cost" = 'Дешёвая';



Рисунок 23 – Поставки дешёвых деталей

  1. SELECT * FROM "Delivery"

  2. INNER JOIN "Detail"

  3. ON "Delivery"."Detail_ID" = "Detail".id AND "High cost" = 'Дорогая';



Рисунок 24 – Поставки дорогих деталей

  1. SELECT * FROM "Delivery"

  2. INNER JOIN "Contractor"

  3. ON "Delivery"."Contractor_ID" = "Contractor".id AND "Reliability" = 'Надёжный';



Рисунок 25 – Поставки от надёжных поставщиков

  1. SELECT * FROM "Delivery"

  2. INNER JOIN "Contractor"

  3. ON "Delivery"."Contractor_ID" = "Contractor".id AND "Reliability" = 'Ненадёжный';



Рисунок 26 – Поставки от ненадёжных поставщиков

  1. CREATE VIEW "EconomistDeliveryBudget" AS

  2. SELECT

  3. "Delivery"."id" AS "id",

  4. "Delivery"."Detail_ID" AS "Detail_ID",

  5. "Delivery"."Contractor_ID" AS "Contractor_ID",

  6. "Delivery"."Project_ID" AS "Project_ID",

  7. "Delivery"."Amount" AS "Amount",

  8. "Detail"."id" AS "ids",

  9. "Detail"."name" AS "name",

  10. "Detail"."Price" AS "Price",

  11. "Detail"."Weight" AS "Weight",

  12. "Detail"."Color" AS "Color",

  13. "Detail"."High cost" AS "High cost",

  14. ("Amount" * "Detail"."Price") AS "All Price"

  15. FROM "Delivery"

  16. INNER JOIN "Detail" ON "Delivery"."Detail_ID" = "Detail".id;

  17. SELECT * FROM "EconomistDeliveryBudget"



Рисунок 27 – Представление стоимости всех поставок

  1. SELECT * FROM "EconomistDeliveryBudget"

  2. WHERE "All Price" > 5000 AND "All Price" < 50000;



Рисунок 28 – Стоимость поставок в заданном диапазоне
Директор должен подготавливать следующие наборы отчетов:

1) список всех поставщиков, список поставщиков с рейтингом не ниже/не выше среднего, список поставщиков с максимальным/минимальным рейтингом – с указанием у каждого поставщика общей суммы, сделанной им поставок (непременное условие для всех списков).

2) список всех деталей, список деталей с ценой не ниже/не выше средней, список деталей максимальной/минимальной ценой – с указанием у каждой детали общей суммы ее поставок (непременное условие для всех списков).


3) список всех проектов, список проектов с бюджетом не ниже/не выше среднего, список проектов с максимальным/минимальным бюджетом – с указанием общей суммы поставок по данному проекту (непременное условие для всех списков).

4) сумма всех поставок, сумма поставок дорогих деталей, сумма поставок дешевых деталей, сумма поставок от надежных поставщиков, сумма поставок от ненадежных поставщиков, сумма поставок от заданного поставщика.
Запросы директора:

1. Список всех поставщиков, список поставщиков с рейтингом не ниже/не выше среднего, список поставщиков с максимальным/минимальным рейтингом – с указанием у каждого поставщика общей суммы, сделанной им поставок (непременное условие для всех списков):

  1. SELECT "Contractor".id, "Contractor".Name, "Contractor"."City", "Contractor"."Address",

  2. "Contractor"."Rating", "Contractor"."Reliability", SUM("Detail"."Price" * "Delivery"."Amount") AS "All Price"

  3. FROM "Contractor", "Delivery", "Detail"

  4. WHERE "Contractor".id = "Delivery"."Contractor_ID"

  5. AND "Detail".id = "Delivery"."Detail_ID"

  6. GROUP BY "Contractor".id

  7. ORDER BY "Contractor".Name;



Рисунок 29 – Все поставщики

  1. SELECT "Contractor".id, "Contractor".Name, "Contractor"."City", "Contractor"."Address",

  2. "Contractor"."Rating", "Contractor"."Reliability", SUM("Detail"."Price" * "Delivery"."Amount") AS "All Price"

  3. FROM "Contractor", "Delivery", "Detail"

  4. WHERE "Contractor".id = "Delivery"."Contractor_ID"

  5. AND "Detail".id = "Delivery"."Detail_ID" AND "Contractor"."Rating" >= 10/2

  6. GROUP BY "Contractor".id

  7. ORDER BY "Contractor".name;



Рисунок 30 – Поставщики с рейтингом выше среднего

  1. SELECT "Contractor".id, "Contractor".Name, "Contractor"."City", "Contractor"."Address",

  2. "Contractor"."Rating", "Contractor"."Reliability", SUM("Detail"."Price" * "Delivery"."Amount") AS "All Price"

  3. FROM "Contractor", "Delivery", "Detail"

  4. WHERE "Contractor".id = "Delivery"."Contractor_ID"

  5. AND "Detail".id = "Delivery"."Detail_ID" AND "Contractor"."Rating" <= 10/2

  6. GROUP BY "Contractor".id

  7. ORDER BY "Contractor".name;



Рисунок 31 – Поставщики с рейтингом ниже среднего


  1. SELECT "Contractor".id, "Contractor".Name, "Contractor"."City", "Contractor"."Address",

  2. "Contractor"."Rating", "Contractor"."Reliability", SUM("Detail"."Price" * "Delivery"."Amount") AS "All Price"

  3. FROM "Contractor", "Delivery", "Detail"

  4. WHERE "Contractor".id = "Delivery"."Contractor_ID"

  5. AND "Detail".id = "Delivery"."Detail_ID"

  6. AND "Rating" = (SELECT MAX("Rating") FROM "Contractor", "Delivery", "Detail"

  7. WHERE "Contractor".id = "Delivery"."Contractor_ID"

  8. AND "Detail".id = "Delivery"."Detail_ID")

  9. GROUP BY "Contractor".id

  10. ORDER BY "Contractor".Name;



Рисунок 32 – Поставщики с максимальным рейтингом

  1. SELECT "Contractor".id, "Contractor".Name, "Contractor"."City", "Contractor"."Address",

  2. "Contractor"."Rating", "Contractor"."Reliability", SUM("Detail"."Price" * "Delivery"."Amount") AS "All Price"

  3. FROM "Contractor", "Delivery", "Detail"

  4. WHERE "Contractor".id = "Delivery"."Contractor_ID"

  5. AND "Detail".id = "Delivery"."Detail_ID"

  6. AND "Rating" = (SELECT MIN("Rating") FROM "Contractor", "Delivery", "Detail"

  7. WHERE "Contractor".id = "Delivery"."Contractor_ID"

  8. AND "Detail".id = "Delivery"."Detail_ID")

  9. GROUP BY "Contractor".id

  10. ORDER BY "Contractor".Name;



Рисунок 33 – Поставщики с минимальным рейтингом
2. Список всех деталей, список деталей с ценой не ниже/не выше средней, список деталей максимальной/минимальной ценой – с указанием у каждой детали общей суммы ее поставок (непременное условие для всех списков):

  1. SELECT "Detail".id, "Detail".Name, "Detail"."Price", "Detail"."Weight",

  2. "Detail"."Color", "Detail"."High cost", SUM("Amount" * "Price") AS "All Price" FROM "Detail", "Delivery"

  3. WHERE "Detail".id = "Delivery"."Detail_ID"

  4. GROUP BY "Detail".id

  5. ORDER BY "All Price" DESC;



Рисунок 34 – Все детали

  1. SELECT "Detail".id, "Detail".Name, "Detail"."Price", "Detail"."Weight",

  2. "Detail"."Color", "Detail"."High cost", SUM("Amount" * "Price") AS "All Price" FROM "Detail", "Delivery"

  3. WHERE "Detail".id = "Delivery"."Detail_ID" AND

  4. "Price" <= (SELECT MAX("Price") FROM "Detail")/2

  5. GROUP BY "Detail".id

  6. ORDER BY "All Price" DESC;



Рисунок 35 – Детали с ценой не выше средней

  1. SELECT "Detail".id, "Detail".Name, "Detail"."Price", "Detail"."Weight",

  2. "Detail"."Color", "Detail"."High cost", SUM("Amount" * "Price") AS "All Price" FROM "Detail", "Delivery"

  3. WHERE "Detail".id = "Delivery"."Detail_ID" AND

  4. "Price" >= (SELECT MAX("Price") FROM "Detail")/2

  5. GROUP BY "Detail".id

  6. ORDER BY "All Price" DESC;