2016-06-30 2 views
0
SELECT 
    Sum(Earning) AS Amount, 
    MONTH(DateCreated) AS Month 
FROM 
    TheTable 
WHERE 
    DateCreated 
BETWEEN 
    @DateFrom AND @DateTo 
GROUP BY **???** 

Ich möchte Einkommen pro Monat anzeigen und es sollte den Monat nicht gruppieren, wenn es nächstes Jahr wieder erscheint, z.GROUP BY Ausgabe - Gruppierung pro Monat

Mai, Juni, Juli, August, September, Oktober, November, Dezember, Januar, Februar, März, April, Mai etc. Juni

Bedeutung, wenn das Jahr die fortgesetzt werden sollte unterscheidet Liste ohne Gruppierung zB Mai 2015 und Mai 2016 insgesamt.

Danke

+0

'MySQL' oder' SQL Server' ? – 1000111

+1

Ich entfernte das MySQL-Tag basierend auf dem Überwiegen von Beweisen. –

+1

Sie sollten nach Monat und Einkommen gruppieren. – Maverick

Antwort

2

Fügen Sie das Jahr, in dem select und group by:

SELECT YEAR(DateCreated) as Year, MONTH(DateCreated) AS Month, 
     Sum(Earning) AS Amount 
FROM TheTable 
WHERE DateCreated BETWEEN @DateFrom AND @DateTo 
GROUP BY YEAR(DateCreated), MONTH(DateCreated) 
ORDER BY YEAR(DateCreated), MONTH(DateCreated); 
+0

Ausgezeichnet. Ich muss 1 Minute warten, um deine Antwort zu akzeptieren. Vielen Dank –

1

Sie Funktion für die Gruppe von Monat verwenden können()

SELECT 
Sum(Earning) AS Amount, 
MONTH(DateCreated) AS Month 
FROM 
    TheTable 
WHERE 
    DateCreated 
BETWEEN 
    @DateFrom AND @DateTo 
GROUP BY MONTH(DateCreated) 
+0

Nein, Sie können den Alias ​​nicht in 'group by' verwenden. –

+0

@IvanStarostin richtig .. Antwort aktualisiert – scaisEdge