Ich habe zwei verschiedene Tische. Ich gruppiere sie beide in sich. In beiden gibt es zwei Spalten. Daher möchte ich die Daten in diesen Feldern sammeln, indem ich dasselbe Feld in zwei Tabellen gruppiere.

Beispiel;

Mein Tisch

salarytype    salary
Asalarytype   1000
Bsalarytype   2000
Csalarytype   3000

Mytable2

salarytype    salary
Asalarytype   100
Bsalarytype   100
Csalarytype   100

Ich möchte: 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

Das Ergebnis, das ich erreichen möchte;

salarytype    totalsalary
Asalarytype    1100
Bsalarytype    2100
Csalarytype    3100
.
.
.
-2
coding123 17 Mai 2019 im 12:01

4 Antworten

Beste Antwort

Dies sollte Ihnen das gewünschte Ergebnis liefern -

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
Shan 17 Mai 2019 im 09:24

Versuche dies-

SELECT salarytype,SUM(Salary) 
FROM
(
    SELECT salarytype,Salary FROM MyTable
    UNION ALL
    SELECT salarytype,Salary FROM MyTable2
)A
GROUP BY salarytype    
1
mkRabbani 17 Mai 2019 im 09:24
select salarytype,
       salary+(select salary from mytable2 where mytable2.salarytype== mytable.salarytype)
from mytable;
0
jarlh 17 Mai 2019 im 09:12

Ich denke, Ihre Tabelle hat doppelte Werte: Sie können dies also tun

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
Aditya Dhanraj 17 Mai 2019 im 09:33