2016-11-17 1 views
0

Angenommen, ich habe eine Tabelle (TreatmentsPerformed), die alle Behandlungen enthält, die von einem Arzt durchgeführt wurden, mit der Termin-ID des Termins, an dem sie durchgeführt wurden, und die Kosten für die einzelnen Behandlungen. Sehen Sie hier Beispiel hier:MySQL - Wie reduziere ich diese Tabelle auf eine mit Gesamtkosten?

TreatmentsPerformed 
appointmentID treatment treatmentCost 
3    tmnt1  30 
3    tmnt2  100 
3    tmnt3  200 
4    tmnt2  100 
5    tmnt1  30 
5    tmnt3  200 
6    tmnt2  100 
6    tmnt3  200 

Ist es möglich, eine Ergebnismenge auswählen, die für jeden der Termine mit einer Abfrage die Gesamtkosten hat? Wie würde ich darüber gehen? Das gewünschte Ergebnis für das obige Beispiel ist dies:

AppointmentCost 

appointmentID totalCost 
3    330 
4    100 
5    230 
6    300 

Antwort

1

Gefällt Ihnen dieses

SELECT appointmentId, SUM(treatmentCost) as totalCost FROM table GROUP BY appointmentID;

0

Sie Group By und Order By Klauseln verwenden können, um dies zu erreichen.

Group By:

SQL - Group By. ... Die SQL GROUP BY-Klausel wird in der Zusammenarbeit mit der SELECT-Anweisung verwendet, um identische Daten in Gruppen anzuordnen. Die GROUP BY Klausel folgt der WHERE Klausel in einer SELECT Anweisung und geht der ORDER BY Klausel voraus.

Order By:

Die SQL ORDER BY Klausel, um die Daten in auf- oder absteigend zu sortieren verwendet wird, basierend auf einer oder mehreren Spalten. Einige Datenbanksortierungen Abfrage Ergebnisse in aufsteigender Reihenfolge standardmäßig.

So Ihre Anfrage wird wie folgt aussehen:

SELECT 
    appointmentId, SUM(treatmentCost) AS totalCost 
FROM 
    table_name 
GROUP BY 
    appointmentID 
ORDER BY 
    appointmentID; 
Verwandte Themen