Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Суммирование полей запросов / 6 сообщений из 6, страница 1 из 1
18.11.2021, 13:42
    #40112829
Oda412
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование полей запросов
Здравствуйте!
В наличии результаты двух запросов:

Запрос 1:
fio sum_f2
-------------------------
Petrov 100

Запрос 2:
fio sum_f3
-------------------------
Pertov 30
Smirnov 185
Ivanov 138

Задача - сложить эти 2 запроса между собой, чтобы получилось так:

fio sum
-------------------------
Petrov 130
Smirnov 185
Ivanov 138

Помогите, пожалуйста

Исходный код здесь:
Код: 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.
CREATE TABLE t1(id SERIAL PRIMARY KEY,
			 fio VARCHAR);

CREATE TABLE t2(id INTEGER NOT NULL REFERENCES t1(id),
			 f2 DOUBLE PRECISION);
			
CREATE TABLE t3(id INTEGER NOT NULL REFERENCES t1(id),
			 f3 DOUBLE PRECISION); 

-- Ввод данных

INSERT INTO t1(id,fio) VALUES (1,'Petrov');
INSERT INTO t1(id,fio) VALUES (2,'Ivanov');
INSERT INTO t1(id,fio) VALUES (3,'Smirnov');

INSERT INTO t2(id,f2) VALUES (1,100);

INSERT INTO t3(id,f3) VALUES(1,30);
INSERT INTO t3(id,f3) VALUES(2,55);
INSERT INTO t3(id,f3) VALUES(2,38);
INSERT INTO t3(id,f3) VALUES(2,45);
INSERT INTO t3(id,f3) VALUES(3,55);
INSERT INTO t3(id,f3) VALUES(3,45);
INSERT INTO t3(id,f3) VALUES(3,85);

-- Запрос 1
SELECT 
	fio,
	SUM(f2) as sum_f2
FROM t1	
INNER JOIN t2 ON t1.id=t2.id
GROUP BY fio;	

-- Запрос 2

SELECT 
	fio,
	SUM(f3) as sum_f3
FROM t1	
INNER JOIN t3 ON t1.id=t3.id
GROUP BY fio;
...
Рейтинг: 0 / 0
18.11.2021, 14:16
    #40112846
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование полей запросов
Что-то типа такого (не тестировал)

Код: sql
1.
2.
3.
4.
5.
SELECT fio,SUM(sum_ff) FROM 	
(SELECT fio,SUM(f2) as sum_ff FROM t1 INNER JOIN t2 ON t1.id=t2.id GROUP BY fio) t11
inner join
(SELECT fio, SUM(f3) as sum_ff FROM t1 INNER JOIN t3 ON t1.id=t3.id GROUP BY fio) t22
ON t11.fio=t22.fio
...
Рейтинг: 0 / 0
18.11.2021, 15:08
    #40112865
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование полей запросов
Код: sql
1.
2.
3.
select t1.id,t1.fio,sum_total from t1 left join (select id, sum(s1) as sum_total from (select id,sum(f2) as s1 from t2 group by id    
union all                                                                    
select id,sum(f3) as s1 from t3 group by id) as table_sum(id,s1) group by id) as t4 on t4.id=t1.id;



Код: plaintext
1.
2.
3.
4.
5.
6.
 id |   fio   | sum_total 
----+---------+-----------
  1 | Petrov  |       130
  2 | Ivanov  |       138
  3 | Smirnov |       185

...
Рейтинг: 0 / 0
18.11.2021, 15:30
    #40112875
Oda412
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование полей запросов
Ролг Хупин, направление мысли понятно, спасибо большое!!
...
Рейтинг: 0 / 0
18.11.2021, 15:30
    #40112876
Oda412
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование полей запросов
Guzya, спасибо большое за решение!!
...
Рейтинг: 0 / 0
18.11.2021, 18:34
    #40112957
Цед Зип
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование полей запросов
Oda412
Ролг Хупин, направление мысли понятно, спасибо большое!!


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


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