Sql server SQL查询联接加总和和月份排序

Sql server SQL查询联接加总和和月份排序,sql-server,tsql,sorting,sum,Sql Server,Tsql,Sorting,Sum,在下面的查询中,我使用带内部联接的sum函数时遇到问题 SELECT distinct Datename(Month,(date)), year(date), SUM(tblpayment.Amount) FROM TblSubsc INNER JOIN TBLPayment ON TblSubsc.[Subsc ID]=TBLPayment.[Subsc ID] group by year(date),Datename(Month,(date)) 它给出了总数,但月份没有排序,所以我

在下面的查询中,我使用带内部联接的sum函数时遇到问题

SELECT distinct Datename(Month,(date)), year(date), SUM(tblpayment.Amount)  
FROM TblSubsc INNER JOIN TBLPayment ON 
TblSubsc.[Subsc ID]=TBLPayment.[Subsc ID] 
group by year(date),Datename(Month,(date))
它给出了总数,但月份没有排序,所以我得到

April August February January March May 四月 八月 二月 一月 前进 也许
如果您有任何帮助,我们将不胜感激。

请尝试添加order by条款

order by year(date) asc, month(date) asc

month(date)
也要分组


编辑:删除“distinct”,因为在这种情况下不需要,因为数据已按月份和日期分组。

datename函数需要2个参数。请输入您给我的消息8127,级别16,状态1,第6行“TblSubsc.date”在ORDER BY子句中无效,因为它未包含在聚合函数或GROUP BY子句中。如果指定了select DISTINCT,则Msg 145,级别15,状态1,第1行ORDER BY项目必须出现在选择列表中。同时在group BY中添加月份(日期)。我删除了datename函数的第二条消息,我没有正确阅读它。我也这样做了,并给出了相同的错误消息Msg 145,级别15,状态1,第1行ORDER BY items必须出现在选择列表中(如果指定了select DISTINCT)。在这种情况下,选择DISTINCT是不必要的,因为您已经有了一个group BY year,month。