2016-06-21 9 views
0

Ich frage mich, ob ich etwas Hilfe dabei bekommen könnte.POSTGRESQL: Summiere ein Feld, wenn 2 Bedingungen erfüllt sind

Ich habe eine Abfrage im Versuch zu schreiben in der Abfrage verwende ich 3 Felder: ID, Option und Menge.

Ich muss meine eindeutigen IDs gruppieren, dann muss ich in dieser Gruppe die Option weiß aufteilen, um die Beträge pro Option zusammenzufassen.

zB: ID: 11111 -> Optiona 500 -> OptionB 100


ID: 11112 -> Optiona 150 -> OptionB 100 etc ....

Hoffnung war ich Discriptive genug :)

die Hilfe zu schätzen wissen.

+0

Könnten Sie veröffentlichen Ihre Datenbankstruktur und Beispiel für Daten und Beispiel für das Ergebnis? –

Antwort

0

Ich denke, Sie sind für eine bedingte Summe wie im folgenden Beispiel suchen:

SELECT id, 
     Sum(CASE WHEN OptionA = 500 THEN aumount END) As Sum_ForOptionA500, 
     Sum(CASE WHEN OptionB = 100 THEN aumount END) As Sum_ForOptionB100, 
     Sum(CASE WHEN OptionA = 200 AND OptionB = 300 THEN aumount END) 
        As Sum_ForOptionA200_B300, 
     ....... 
FROM table 
GROUP BY id 

Oder nur Summen für alle verfügbaren Kombination von Optionen berechnen, wie

SELECT id, optionA, optionB, sum(Amount) 
FROM table 
GROUP BY id, optionA, optionB 
Verwandte Themen