[英]SQL get Month and Year name and order by month
我有這個查詢,拉出月份和金額。 像這樣:
Aug 2015 61.87
Dec 2015 10.83
Feb 2015 80.00
Jul 2015 56.19
Jun 2015 31.65
Mar 2015 59.02
May 2015 46.91
Nov 2015 6.00
Oct 2015 8.27
Sep 2015 15.73
如您所見,順序不正確。 這是我的查詢
select
CONVERT(CHAR(4), InvoiceDate, 100) + CONVERT(CHAR(4), InvoiceDate, 120) as Month,
CONVERT(decimal(18,2), round(SUM(amount),2)) as Amount
from DataInvoice
where Vendor='IceCreamTruck'
and AccountNumber = '54554'
and InvoiceDate >= '02/01/2015'
and InvoiceDate <= '01/31/2016'
group by MONTH(InvoiceDate),
CONVERT(CHAR(4), InvoiceDate, 100) + CONVERT(CHAR(4), InvoiceDate, 120)
我嘗試按Year()
, Month()
進行排序,但這沒有用。 它抱怨ORDER BY
子句中的無效,因為它既不在聚合函數中也不在GROUP BY
子句中。
有什么想法嗎? 順便說一下,發票在此格式YYYY-MM-DD中
謝謝。
您應該添加一個ORDER BY
子句:
ORDER BY RIGHT(CONVERT(CHAR(4), InvoiceDate, 100) + CONVERT(CHAR(4), InvoiceDate, 120),4)
MONTH(InvoiceDate)
這實質上是按年份排序結果,然后按月份編號排序,因此應該為您提供正確的排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.