2012-04-02 5 views
2

Ich versuche, einen Weg zu Summen Beträge, die einen bestimmten Begriff entsprechen, und auch Beträge, die nicht übereinstimmen. Zum Beispiel sieht, wenn meine Tabelle wie dieseWählen Sie mit einer Where-Klausel und ohne sie in der gleichen Abfrage

user amount description 
1  34  bike 
1  78  toys 
2  3  fuel 
2  12  bike 

Ich versuche, einen Tisch zu bekommen, der so am Ende aussehen wird:

user amount spent on bike amount spent total 
1  34     112 
2  12     15 

Ich verwende mysql

Antwort

1

Sie kann eine CASE Anweisung innerhalb einer SUM Gruppierung verwenden:

SELECT user, 
     SUM(CASE WHEN description = 'bike' THEN amount ELSE 0 END) bike_amount, 
     SUM(amount) total_amount 
FROM mytable 
GROUP BY user 
Verwandte Themen