sql - 连接日期的月份和年份以对其进行排序
问题描述
我有一个问题,我认为我想多了。我有一个导入到 PowerBI 的 SQL 视图,我想用它来订购我正在构建的图形。我订购并遇到问题的部分是日期部分列:
select
Ticket_ClientName, count(Ticket_ClientName) as DisplayNameCount,
concat( datepart(month, cast(t.ticket_opendate as date)),
datepart(year, cast(t.ticket_opendate as date))) as OpenDate,
datename(month, cast(t.ticket_opendate as date)) as Month_Name
from
dbo.Ticket t
where
CAST(t.ticket_opendate as date) >= '02/01/2021'
and t.Ticket_ClientName is not null
and Ticket_DisplayId not like 'EH%'
group by
ticket_ClientName,
concat( datepart(month, cast(t.ticket_opendate as date)),
datepart(year, cast(t.ticket_opendate as date))),
datename(month, cast(t.ticket_opendate as date))
我将面临的问题是当一年过去时,因为 10 月到 12 月将始终保持为最新的月份,因为它们是最高的数字,有没有人有办法解决这个问题?如果我想太多了,我提前道歉。
解决方案
您可以按 分组和排序EOMONTH
,它返回该月的最后一天。
select
Ticket_ClientName,
count(Ticket_ClientName) as DisplayNameCount,
FORMAT(EOMONTH(t.ticket_opendate), 'MMyyyy') as OpenDate,
datename(month, EOMONTH(t.ticket_opendate)) as Month_Name
from
dbo.Ticket t
where
t.ticket_opendate >= '20210102'
and t.Ticket_ClientName is not null
and Ticket_DisplayId not like 'EH%'
group by
ticket_ClientName,
EOMONTH(t.ticket_opendate)
order by
EOMONTH(t.ticket_opendate);
推荐阅读
- python - Pandas 数据透视表中的平均值
- redis - 卸载 Redis 会清除它的内存数据吗?
- ruby-on-rails - Rails + Devise Login flash 消息错误显示
- database - 在 Cloud Firestore(NoSQL 数据库)中构建文档的最佳方式?
- php - 如何使用程序而不是 PDO 获取 json 中的值
- javascript - Google Maps Javascript API 无法可靠加载
- azure-api-management - 从响应对象中提取非字符串值
- javascript - 我如何才能对我的项目实施分页
- c# - 布尔到图像转换器不起作用。图像没有改变
- flutter - 错误:“x”类型的值不能分配给“Widget”类型的变量