2016-03-22 21 views
0

Ich habe folgendes Datenschema in der Tabelle ‚Beispiel‘:mysql: wählen und Summe von mehreren Datensatz

State | Identifier | Data 
true |  A  | 60 
false |  B  | 20 
false |  A  | 10 
true |  C  | 20 
true |  A  | 40 
true |  B  | 9 
true |  C  | 30 
false |  A  | 60 

Was ich will, ist eine Summe von jeder Kennung zu erhalten, zum Beispiel, wenn sein Zustand wahr ist.

Zum Beispiel A wurde eine Summe von 100, B eine Summe von 9 und C Summe 50 meine SQL-Abfrage

Für eine einzelne Kennung sieht würde sein wie
SELECT SUM(data) FROM example WHERE state = false AND identifier = "A" 

, die ganz gut funktioniert.

Da die erforderlichen Bezeichner jedoch über ein Formular übermittelt werden, das über Kontrollkästchen ausgewählt werden kann, ändern sich die Anzahl und der Wert der Bezeichner. Ich möchte das Ergebnis der gewählten Bezeichner A und C zum Beispiel als A=100 and C=50 anzeigen

Irgendwelche Gedanken?

Vielen Dank im Voraus,

devyn

+1

Verwenden Sie einfach ' GROUP BY', dh: SELECT SUM (Daten) FROM Beispiel WHERE State = false UND Identifier = "A" GROUP BY Identifier ' – Terry

Antwort

0

Sie müssen Sie GROUP BY Klausel, benutzen Sie diese

SELECT Identifier, SUM(data) FROM example WHERE state = 'false' GROUP BY Identifier 

Ich hoffe, das für Sie arbeitet.

0

Sie können Gruppe die von der Spalte zurückgegebenen Zeilen Identifier, das heißt:

SELECT 
    SUM(Data) 
FROM 
    example 
WHERE 
    State = false AND 
    Identifier = "A" 
GROUP BY 
    Identifier 
0

Das das Ergebnis in eine Zeile bekommen Sie bedingte Aggregation verwenden:

SELECT SUM(CASE WHEN identifier = 'A' THEN data END) AS A_data, 
     SUM(CASE WHEN identifier = 'B' THEN data END) AS B_data, 
     SUM(CASE WHEN identifier = 'C' THEN data END) AS C_data 
FROM example 
WHERE state = false 
Verwandte Themen