it-swarm.com.de

SQL: Wie man zwei Werte aus verschiedenen Tabellen summiert

Okay.

Ich habe bei der Arbeit ein Projekt bearbeitet, und obwohl ich einige SQL-Kenntnisse habe, sind sie sehr verrostet.

Eines der Szenarien bei der Arbeit hat mir eine Reihe von Tabellen mit Werten hinterlassen, die ich zusammenfassen muss. Sie sind auch nicht verknüpft, aber die Reihenfolge ist für alle Tabellen gleich.

Grundsätzlich möchte ich diese beiden Tabellen nehmen:

CASH TABLE  
London  540
France  240
Belgium 340

CHEQUE TABLE
London  780
France  490
Belgium 230

So erhalten Sie eine Ausgabe, die in eine Grafikanwendung eingespeist wird:

London  1320
France  730
Belgium 570

Bitte helfen Sie.

23
Uchenna Ebilah
select region,sum(number) total
from
(
    select region,number
    from cash_table
    union all
    select region,number
    from cheque_table
) t
group by region
48
Jonysuise
SELECT (SELECT SUM(London) FROM CASH) + (SELECT SUM(London) FROM CHEQUE) as result

'Und so weiter und so fort.

16
vector

sie können dies auch in SQL-Server versuchen!

select a.city,a.total + b.total as mytotal from [dbo].[cash] a join [dbo].[cheque] b on a.city=b.city 

Demo

oder versuchen Sie es mit sum, union

select sum(total)  as mytotal,city
from
(
    select * from cash union
    select * from cheque
) as vij
group by city 
1
vhadalgi

Für Ihre aktuelle Struktur können Sie auch Folgendes versuchen:

select cash.Country, cash.Value, cheque.Value, cash.Value + cheque.Value as [Total]
from Cash
join Cheque
on cash.Country = cheque.Country

Ich glaube, ich bevorzuge eine Vereinigung zwischen den beiden Tabellen und eine Gruppierung nach dem oben genannten Ländernamen.

Ich würde aber auch empfehlen, Ihre Tabellen zu normalisieren. Idealerweise verfügen Sie über eine Ländertabelle mit ID und Name sowie eine Zahlungstabelle mit: CountryId (FK zu Ländern), Total, Type (Bargeld/Scheck)

0
Mathew Collins