Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Два небольших запроса. / 1 сообщений из 1, страница 1 из 1
06.09.2015, 16:31
    #39044297
Anarchist_42
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два небольших запроса.
Всем здравствуйте, может кто подсказать как написать два небольших запроса?

1. Вывести полный список городов и для каждого города найти суммарное количество деталей красного цвета, которые были в него поставлены. Города в списке должны быть ВСЕ. Список должен быть упорядочен по алфавиту.

Что я смог сделать - вывести два столбца: в первом - изделия, во втором их количество.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT n_izd,SUM(kol)
FROM spj
WHERE n_det IN
(
	SELECT n_det
	FROM p
	WHERE p.cvet='Красный'
)
GROUP BY n_izd




2. Увеличить рейтинг всех поставщиков, имеющих в настоящее время рейтинг меньше, чем у поставщика S5, на величину равную умноженному на 2 числу выполненных поставщиком поставок.

Что я смог сделать - вывести два столбца: в первом - поставщики, во втором удвоенное количество поставок каждого.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT n_post,2*SUM(kol)
FROM spj
WHERE n_post IN
(
	SELECT n_post
	FROM s
	WHERE reiting <
	(
		SELECT reiting
		FROM s
		WHERE s.n_post='s5'
	)
)
GROUP BY n_post



Структура и наименование таблиц:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
create table s (n_post char(6) not null,name char(20) not null,reiting integer,town char(20));

create table p (n_det char(6) not null,name char(20) not null,cvet char(20),ves integer,town char(20));

create table j (n_izd char(6) not null,name char(20),town char(20));

create table spj (n_post char(6) not null, n_det char(6) not null, n_izd char(6) not null, kol integer, date date not null);
 
Insert into "s" values ('s1','Смит',20,'Лондон');
Insert into "s" values ('s2','Джонс',10,'Париж');
Insert into "s" values ('s3','Блейк',30,'Париж');
Insert into "s" values ('s4','Кларк',20,'Лондон');
Insert into "s" values ('s5','Адамс',30,'Афины'); 

Insert into "p" values ('p1','Гайка','Красный',12,'Лондон');
Insert into "p" values ('p2','Болт','Зеленый',17,'Париж');
Insert into "p" values ('p3','Винт','Голубой',17,'Рим');
Insert into "p" values ('p4','Винт','Красный',14,'Лондон');
Insert into "p" values ('p5','Кулачок','Голубой',12,'Париж');
Insert into "p" values ('p6','Блюм','Красный',19,'Лондон');

Insert into "j" values ('j1','Жесткий диск','Париж');
Insert into "j" values ('j2','Перфоратор','Рим');
Insert into "j" values ('j3','Считыватель','Афины');
Insert into "j" values ('j4','Принтер','Афины');
Insert into "j" values ('j5','Флоппи-диск','Лондон');
Insert into "j" values ('j6','Терминал','Осло');
Insert into "j" values ('j7','Лента','Лондон');

Insert into "spj" values ('s1','p1','j1',200,10/02/2014);
Insert into "spj" values ('s1','p1','j4',700,10/02/2014);
Insert into "spj" values ('s2','p3','j1',400,10/02/2014);
Insert into "spj" values ('s2','p3','j2',200,10/02/2014);
Insert into "spj" values ('s2','p3','j3',200,10/02/2014);
Insert into "spj" values ('s2','p3','j4',500,10/02/2014);
Insert into "spj" values ('s2','p3','j5',600,10/02/2014);
Insert into "spj" values ('s2','p3','j6',400,10/02/2014);
Insert into "spj" values ('s2','p3','j7',800,10/02/2014);
Insert into "spj" values ('s2','p5','j2',100,10/02/2014);
Insert into "spj" values ('s3','p3','j1',200,10/02/2014);
Insert into "spj" values ('s3','p4','j2',500,10/02/2014);
Insert into "spj" values ('s4','p6','j3',300,10/02/2014);
Insert into "spj" values ('s4','p6','j7',300,10/02/2014);
Insert into "spj" values ('s5','p2','j2',200,10/02/2014);
Insert into "spj" values ('s5','p2','j4',100,10/02/2014);
Insert into "spj" values ('s5','p5','j5',500,10/02/2014);
Insert into "spj" values ('s5','p5','j7',100,10/02/2014);
Insert into "spj" values ('s5','p6','j2',200,10/02/2014);
Insert into "spj" values ('s5','p1','j4',100,10/02/2014);
Insert into "spj" values ('s5','p3','j4',800,10/02/2014);
Insert into "spj" values ('s5','p5','j4',400,10/02/2014);
Insert into "spj" values ('s5','p6','j4',500,10/02/2014);



Заранее буду благодарен за помощь.
P.S. Не отказался бы от хороших учебников по SQL с примерами (чем больше чем лучше).
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Два небольших запроса. / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]