Собирать данные, группируя данные в разных таблицах? - PullRequest
0 голосов
/ 17 мая 2019

У меня есть две разные таблицы.Я группирую их обоих внутри себя.в обоих есть два столбца.Поэтому я хотел бы собрать данные в этих полях, сгруппировав одно и то же поле в две таблицы.

пример;

mytable

salarytype    salary
Asalarytype   1000
Bsalarytype   2000
Csalarytype   3000

mytable2

salarytype    salary
Asalarytype   100
Bsalarytype   100
Csalarytype   100

Я хочу: 1000 + 100 = 1100, 2000 + 100 = 2100, 3000 + 100 = 3100 ...

SELECT salarytype
,SUM(salary) FROM mytable GROUP BY salarytiype


SELECT salarytype
,SUM(salary) FROM mytable2 GROUP BY salarytiype

результат, которого я хочу достичь;

salarytype    totalsalary
Asalarytype    1100
Bsalarytype    2100
Csalarytype    3100
.
.
.

Ответы [ 4 ]

1 голос
/ 17 мая 2019

Попробуйте это-

SELECT salarytype,SUM(Salary) 
FROM
(
    SELECT salarytype,Salary FROM MyTable
    UNION ALL
    SELECT salarytype,Salary FROM MyTable2
)A
GROUP BY salarytype    
0 голосов
/ 17 мая 2019

Я думаю, что ваша таблица имеет повторяющиеся значения: так что вы можете сделать это

select distinct t1.salarytype, sum(t1.salary) from
(
select salarytype, sum(salary) from  mytable GROUP BY salarytype
UNION ALL
select salarytype, sum(salary) from  mytable2 GROUP BY salarytype
) t1
group by t1.salarytype, orderby t1.salarytype

##Hope this will resolve your problem, you can use distinct, to remove 
duplicates
0 голосов
/ 17 мая 2019

Это должно дать вам желаемый результат -

WITH CTE AS 
(
    SELECT salarytype,
           salary 
    FROM MyTable

    UNION ALL

    SELECT salarytype,
           salary 
    FROM  MyTable2
)
SELECT salarytype,
       SUM(salary)
FROM CTE       
GROUP BY salarytype
0 голосов
/ 17 мая 2019
select salarytype,
       salary+(select salary from mytable2 where mytable2.salarytype== mytable.salarytype)
from mytable;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...