SSRS日期排序

时间:2015-10-16 14:23:52

标签: sql sql-server reporting-services

我有一个日期,我希望像“Jan 05”那样显示为月份和年份。 我在查询中使用了以下SQL日期名(月,eFolder.eCreationTime)+''+ datename(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) 

1 个答案:

答案 0 :(得分:0)

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

不应将日期存储(或检索)为文本的众多原因之一。

  

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

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

其他选择:

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