2016-11-09 5 views
2
Name | Amount | Date 
_____________________ 
Jacob | 15 | 1-Oct-16 

Jacob | 50 | 2-Oct-16 

Ethan | 24 | 3-Oct-16 

Jacob | 30 | 3-Oct-16 

William | 17 | 1-Oct-16 

William | 11 | 2-Oct-16 

Ethan | 36 | 3-Oct-16 

Ethan | 9 | 1-Oct-16 

I obigen Tabelle haben, und ich will Summe der Menge für die letzten 5 Tage so etwas wieSQL Gruppe von mit Fall

Name | 5-oct-16 | 4-oct-16 | 3-oct-16 | 2-oct-16| 1-oct-16 
___________________________________________________________ 

Jacob | 0  | 0  |30   | 50  | 15 
Ethan | 0  | 0  |60   | 0  | 9 
William | 0  | 0  |0   | 11  | 17 

zur Gruppe getrennt, indem Sie auf Namen mit Menge Summe letzten 5 Tage wollen.

Antwort

3

Ich glaube, Sie bedingte Aggregation wollen:

SELECT Name, 
     SUM(CASE DATE WHEN '2016-10-05' THEN Amount ELSE 0 END) as amount_2016105, 
     SUM(CASE DATE WHEN '2016-10-04' THEN Amount ELSE 0 END) as amount_2016104, 
     SUM(CASE DATE WHEN '2016-10-03' THEN Amount ELSE 0 END) as amount_2016103, 
     SUM(CASE DATE WHEN '2016-10-02' THEN Amount ELSE 0 END) as amount_2016102, 
     SUM(CASE DATE WHEN '2016-10-01' THEN Amount ELSE 0 END) as amount_2016101 
FROM MyTable 
GROUP BY Name; 
+0

Thanx ..... es funktionierte. – SAURABH