簡體   English   中英

SQL按月獲取月份和年份的名稱和順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM