2016-10-26 6 views
2

Ich habe eine Tabelle wie dieseWie bekomme ich die Summe von MonthYear in sql?

id   Date    Amount 

    1 2016-09-29 09:25:37.000 25.13 
    2 2016-08-01 17:20:39.000 598.00 
    3 2016-09-29 09:24:47.000 15.60 
    4 2016-07-28 17:50:11.000 61.80  
    5 2016-07-28 17:53:56.000 31.40 
    6 2016-07-22 10:40:27.000 74.16 

Ich versuche, zwei Spalten so zu erhalten,

MonthYear   Total 

Sep 2016    40.73 
Aug 2016   598.00 
Jul 2016   167.36 

Aber ich letztes Jahr und Monat nach oben zu bekommen.

+2

Dies ist eine gewöhnliche Summe mit Gruppe durch Erklärung/Bestellung. – ZLK

+0

Summieren Sie alle Beträge/Nummern, gruppieren Sie die anderen Daten mit Ausnahme der Beträge/Nummern und ordnen Sie sie entsprechend Ihrer Auswahl entsprechend an. – GNMercado

Antwort

3

diese SQL-Versuchen,

SELECT CONVERT(CHAR(4), Date, 100) + CONVERT(CHAR(4), Date, 120) 
     AS MonthYear, SUM(Amount) 
     AS Total, 
      CAST(CONVERT(varchar(4), Date, 120) AS int) 
     AS Year, DATEPART(m, Date) As Month 
    FROM your_table 
GROUP BY CONVERT(CHAR(4), Date, 100) + CONVERT(CHAR(4), Date,120),CAST(CONVERT(varchar(4), Date, 120) AS int), DATEPART(m, Date) 
ORDER BY Year DESC, Month DESC 
0

unter

SELECT Datename(MONTH, [Date]) month_name, 
     Year([Date]) year, 
     Sum([Amount]), 
     Month([date]) month_no 
FROM #Table1 
GROUP BY Datename(MONTH, [Date]), 
      Year([Date]), 
      Month([date]) 
ORDER BY Month([date]) DESC, 
      Year([Date]), 
      Datename(MONTH, [Date]) 
0

Nur eine andere Perspektive Versuchen.

Abfrage

SELECT t.[MonthYear], SUM(t.[Amount]) AS [Total] FROM(
    SELECT RIGHT((CONVERT(VARCHAR(11), [Date], 106)), 8) as [MonthYear], [Amount] 
    FROM [your_table_name] 
)t 
GROUP BY t.[MonthYear]; 
Verwandte Themen