0
我想按月份名称对结果进行排序,但是在sql server中没有得到排序。
我的查询:
select DATEname(month,signdate) as month1,
COUNT(contractid) as noofcontracts, sum(loanamt) as totalloan ,
min(loanamt) as minloan
from contracts
group by DATEname(month,signdate) order by DATEname(month, signdate);
我已经尝试使用datepart函数,但是它给出了错误
select DATEname(month,signdate) as month1,
COUNT(contractid) as noofcontracts, sum(loanamt) as totalloan ,
min(loanamt) as minloan
from contracts
group by DATEname(month,signdate)
order by DATEPART(m,signdate) ;
错误:ORDER BY子句中的“ contracts.signdate”列无效,因为它既不在聚合函数中也不在GROUP BY子句中。
我得到的输出:
month count loan_amt min_loan
April 2 14998 4999
February 1 8189 8189
June 5 133645 2599
21947年5月2日10048
所需的输出:2月的记录应该排在第一位,依此类推。
请帮助。
尝试对以下项使用聚合函数order by:
order by min(signdate);
或者,在中包含月份号group by:
group by datename(month, signdate), month(signdate)
order by month(signdate)
请注意,查询中的月份中没有年份,可以是过滤器也可以是group by表达式。这通常表明查询逻辑存在问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。