Ich muss aggregieren Amounts
, um nach Datumsbereich pro Monat angezeigt werden. Zur Veranschaulichung bitte einen Blick auf die folgende Tabelle nehmen:Aggregieren mehrerer Spalten basierend auf einem bestimmten Datumsbereich mit einem Monat
Invoice_Payment
Customer_id Invoice_no Invoice_date Amount
---------------------------------------------------
10 10023 2016-07-08 60
10 10018 2016-08-04 90
11 10016 2016-07-01 110
11 10021 2016-07-05 120
12 10028 2016-07-11 10
12 10038 2016-07-31 5
Wie Sie bemerken, ich gruppieren wollen, dass sie basierend auf Customer_id
und zeigt die Daten als Anfang bis Ende. Außerdem muss dies nur für jeden Monat gemacht werden.
Nach Abfrage, die ich bisher versucht habe:
select Customer_id, (mindate + ' to ' + maxdate) Date_Range, Amount
from (
select Customer_id, sum(Amount) Amount, min(Invoice_date) mindate, max(Invoice_date) maxdate
from Invoice_Payment
group by Customer_id
) I ;
Von oben Abfrage erhalte ich Output
wie:
Customer_id Date_Range Amount
10 2016-07-08 to 2016-08-04 150
11 2016-07-01 to 2016-07-05 230
12 2016-07-11 to 2016-07-31 15
Bitte überprüfen Sie dies .. SQL Fiddle Working Demo
Lassen Sie uns sagen Customer_id = 10
Wer hat Invoice_date in July,2016
und August,2016
. Ich muss alle Zahlungen dieses bestimmten Kunden für den Monat Juli und August getrennt innerhalb eines bestimmten Datumsbereichs zusammenfassen. Aber ich bekomme eine Summe von Amount
von allen Invoice_date
von oben Bestreben.
gewünschte Ausgabe:
Customer_id Date_Range Amount
10 2016-07-08 to 2016-07-08 60
10 2016-08-04 to 2016-08-04 90
11 2016-07-01 to 2016-07-05 230
12 2016-07-11 to 2016-07-31 15
Wie könnte ich darüber hinwegkommen? Jede Hilfe würde sehr geschätzt werden.
Es funktioniert jetzt gut danke! –