繁体   English   中英

SSRS日期排序

[英]SSRS date sorting

我有一个日期想要显示为“月”然后“年”,例如“ Jan 05”。 我在查询中使用了以下SQL datename(month,eFolder.eCreationTime)+''datedate(year,eFolder.eCreationTime)作为“ MonthYear”。

但是在SSRS上,我发现很难按字母顺序将其按列分组进行排序。 无论如何,还是有问题要解决,还是问题在于上面提到的SQL的连接问题,我尝试在组级别和文本框中进行排序却没有成功。

先感谢您

这是sql在当下的样子

SELECT
case when SUBSTRING(eFolder.eFolderName,1,2) = 'IM' then 'Incidents' 
     when SUBSTRING(eFolder.eFolderName,1,2) = 'RF' then 'Requests'
     else null end "Request or Incident", 
  count(eFolder.eFolderName) as "Log No",
  eUser2.eDistinguishedName,
    datename(month,eFolder.eCreationTime) + ' ' + datename(year,eFolder.eCreationTime)  as "Month"

FROM
  eUser  eUser2 RIGHT OUTER JOIN prcIncidentManagement ON (eUser2.eUserName=prcIncidentManagement.AssignedTo)
   INNER JOIN eFolder ON (prcIncidentManagement.EFOLDERID=eFolder.eFolderID)



group by 

case when SUBSTRING(eFolder.eFolderName,1,2) = 'IM' then 'Incidents' 
     when SUBSTRING(eFolder.eFolderName,1,2) = 'RF' then 'Requests'
     else null end , 
  eUser2.eDistinguishedName,
   datename(month,eFolder.eCreationTime) + ' ' + datename(year,eFolder.eCreationTime) 

不要在SQL中进行字符串转换。 返回数据作为日期值,并在SSRS中进行字符串格式化。

日期不应该以文本形式存储(或检索)的众多原因之一。

我将其分组为几个月的原因是为了减少行数和时间。

您仍然可以按月将其分组而不将其转换为字符串。 只需返回代表该月的日期即可(例如2015-10-01

其他选项:

  • 按年和月分组的数字包括在结果中,并将其转换为SSRS中的日期
  • 将字符串解析为SSRS中的日期(使用CDateDateTime.ParseExact()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM