· 6 years ago · Jun 04, 2019, 05:24 PM
1DROP TABLE IF EXISTS R1;
2DROP TABLE IF EXISTS R2;
3DROP TABLE IF EXISTS R3;
4drop view if exists view5;
5drop view if exists view4;
6drop view if exists view3;
7drop view if exists view2;
8drop view if exists view1;
9
10CREATE TABLE R1(
11 Шифр text,
12 Наименование text,
13 Материал text,
14 Производитель text);
15CREATE TABLE R2(
16 Номер_поставки integer,
17 Шифр text,
18 Количество integer,
19 Поставщик text,
20 Заказчик text);
21CREATE TABLE R3(
22 Фирма text,
23 Страна text);
24
25insert into R1 values ('ААА', 'Брус', 'Сосна', 'Петрович');
26insert into R1 values ('ААБ', 'Доска', 'Ольха', 'Петрович');
27insert into R1 values ('ААВ', 'Гвозди', 'Сталь', 'Славянка');
28insert into R1 values ('БББ', 'Шурупы', 'Железо', 'Славянка');
29insert into R1 values ('ВВВ', 'Вагонка', 'Ель', 'Славянка');
30insert into R1 values ('ХУЙ', 'Петя', 'Жопа', 'ПИЗДА');
31
32insert into R2 values ('1', 'ААА', '10', 'Петрович', 'Икеа');
33insert into R2 values ('8', 'ААА', '10', 'Петрович', 'Славянка');
34insert into R2 values ('2', 'ААБ', '10', 'Петрович', 'Метрострой');
35insert into R2 values ('3', 'ААВ', '10', 'Славянка', 'Краута');
36insert into R2 values ('4', 'БББ', '110', 'Славянка', 'Краута');
37insert into R2 values ('5', 'ВВВ', '11', 'Саня', 'Лента');
38insert into R2 values ('6', 'ХУЙ', '228', 'ПИДАРАС(САНЯ)', 'Лента');
39insert into R2 values ('7', 'ХУЙ', '228', 'ПИДАРАС(САНЯ)', 'Славянка');
40insert into R2 values ('9', 'ААА', '111', 'Петрович', 'ПИЗДА');
41insert into R2 values ('10', 'ААА', '14', 'Петрович', 'Икеа');
42
43insert into R3 values ('Петрович', 'Россия');
44insert into R3 values ('Икеа', 'Швеция');
45insert into R3 values ('Метрострой', 'Россия');
46insert into R3 values ('Краута', 'Норвегия');
47insert into R3 values ('Саня', 'Россия');
48insert into R3 values ('Славянка', 'AMERICA');
49insert into R3 values ('Лента', 'Россия');
50insert into R3 values ('ПИЗДА', 'Россия');
51
52--1. Изделия, которые производятся только на экспорт (т.е. заказчик в другой стране)
53create view view1 as
54Select Шифр
55From R1 inner join R3 as kek on R1.Производитель = kek.Фирма
56where Шифр in (Select R2.Шифр
57 From R2 cross join R3 on R2.Заказчик = R3.Фирма
58 Where kek.Страна <> Страна
59 except
60 Select R2.Шифр
61 From R2 cross join R3 on R2.Заказчик = R3.Фирма
62 Where kek.Страна = Страна)
63;
64
65--Select Шифр
66--From R1 inner join R3 as kek on R1.Производитель = kek.Фирма
67--where Шифр not in (Select R2.Шифр
68-- From R2 cross join R3 on R2.Заказчик = R3.Фирма
69-- Where kek.Страна = Страна)
70
71--2. Производителей, которые не выпускают товаров на экспорт
72create view view2 as
73select Производитель
74from R1
75where Производитель not in (Select Производитель
76 From R1 inner join R3 as kek on R1.Производитель = kek.Фирма
77 where Шифр in ( Select R2.Шифр
78 From R2 cross join R3 on R2.Заказчик = R3.Фирма
79 where kek.Страна <> Страна))
80;
81
82--3. Изделия, которые используются как внутри страны, так и идут на экспорт
83Create view view3 as
84Select Шифр
85From R1 inner join R3 as kek on R1.Производитель = kek.Фирма
86where Шифр in (Select R2.Шифр
87 From R2 cross join R3 on R2.Заказчик = R3.Фирма
88 Where kek.Страна <> Страна
89 INTERSECT
90 Select R2.Шифр
91 From R2 cross join R3 on R2.Заказчик = R3.Фирма
92 Where kek.Страна = Страна)
93;
94
95--4. Материалы,которые используются в изделиях, которые идут на экспорт
96Create view view4 as
97select *--Материал
98from R1 inner join R3 as kek on R1.Производитель = kek.Фирма
99where Шифр in ( Select R2.Шифр
100 From R2 cross join R3 on R2.Заказчик = R3.Фирма
101 where kek.Страна <> Страна)
102;
103
104--5. Поставщиков, которые работают только с одним заказчиком
105Create view view5 as
106Select Поставщик
107From R2
108Group by Поставщик
109Having count(distinct Заказчик) = 1
110;