SSRS在包含字母数字的日期字段上排序

时间:2017-03-20 17:14:37

标签: sorting date reporting-services

我正在使用SSRS 3.0和SharePoint 2013.我正在对日期字段中的SSRS报告进行排序。我使用表达式将一些日期作为字母数字插入(即“N / A”,“正在进行”)客户希望按日期排序的行包含最早的日期和“N / A”和“N / A”正在进行的“日期持续。 Sort函数首先对alpha进行排序,然后对包含日期的其他行进行排序。如何使用排序表达式对日期最旧到最新进行排序,然后对“N / A”和“正在进行”日期进行排序?谢谢!

3 个答案:

答案 0 :(得分:0)

将结果集分为两部分,一部分用于纯日期结果,其余部分用于“正在进行的”& 'N / A'。使用UNION组合它们。

这将是这样的查询:

Select col1, col2 
From table 
where ... --condition to filter out those rows with real date
order by date 

UNION

Select col1, case when col2 ... then 'Ongoing' when col2 ... then 'N/A'
From table
where ... --condition to filter out those rows need to be replace with characters
--not necessary using `order by for this part`

答案 1 :(得分:0)

您可以按如下方式使用ORDER BY子句:

SELECT MyDate FROM MyDateTable
ORDER BY 
    CASE WHEN MyDate IN ('n/a','Ongoing') THEN 1 ELSE 0 END,
    MyDate

答案 2 :(得分:0)

您可以在SQL或报表中创建计算排序表达式。我会在报告中举一个例子,因为那是你提出的问题。

首先,进入您的组属性,然后进入“排序”选项卡。我们将添加两个排序条件。点击"添加"按钮,然后单击表达式按钮。

对于第一个条件,我们将日期和文本分开。所以表达式是这样的:

=IIf(IsDate(Fields!MyColumn.Value), 1, 2)

添加第二个排序条件并将其设置为按降序对列进行排序。这将把日期放在第一位,将文本放在它之后。