2017-02-23 4 views
0

Ich habe SQL-Ergebnisse wie die ersten Ergebnisse im Bild unten, aber ich möchte es ändern, um den Preis nach Kunden zu summieren, wie im zweiten Teil des Bildes gesehen. Zahlungs-ID und Preis sind in einer Tabelle, Kunde ist in einer zweiten Tabelle.TSQL wie man Unterberechnungen macht

Dies ist SQL für erste Ergebnisse:

select 
    p.payment_id, p.price, c.customer 
from 
    payments p 
left join 
    customers c on p.payment_id = c.payment_id 

Ausgang:

enter image description here

Antwort

3
SELECT SUM (p.price) price, c.customer 
    FROM payments p LEFT JOIN customers c on p.payment_id = c.payment_id 
GROUP BY c.customer 
+0

Diese Gruppierung wurde nach Kunden gruppiert, aber es ergab sich nicht die Summe, die ich brauche. Es wurden weiterhin alle Zahlungs-IDs aufgelistet, anstatt sie auf zwei Datensätze mit summiertem Preis zu reduzieren. –

+0

Am Ende musste eine weitere Unterabfrage durchgeführt werden, und die Summe funktionierte. –

1
select sum(p.price) as price, c.customer 
from payments p 
left join customers c 
on p.payment_id = c.payment_id 
group by c.customer 
order by c.customer 
1

Verwenden Sie die GROUP BY Klausel & SUM() Aggregatfunktion

select SUM(p.price) AS price, c.customer 
from payments p 
left join customers c 
    on p.payment_id = c.payment_id 
group by c.customer