SSRS前N个日期

时间:2015-05-12 11:40:23

标签: sql-server-2008 ssrs-2008-r2

所以我现在正在编写一份SSRS报告,我想根据任意数量的交货来计算提前期。

我在SSRS中有我的查询,但现在我想过滤它以显示最近5次交付。通常我会使用前N进行过滤,但SSRS正确地抱怨数字5不是日期。

如何在不知道您要返回的记录的确切日期的情况下过滤最近五个最新日期?

数据集如下(提前期是订单日期减去交货日期的计算)

Order | Del_Date   | Lead_Time
------|------------|-----------
00001 | 2015-05-01 | 20
00002 | 2015-01-08 | 21
00003 | 2015-02-05 | 22
00004 | 2015-03-11 | 26
00005 | 2015-01-21 | 8
00006 | 2015-04-12 | 12
00007 | 2015-03-02 | 12
00008 | 2015-02-01 | 12

查询应该返回

Order | Del_Date   | Lead_Time
------|------------|-----------
00001 | 2015-05-01 | 20
00003 | 2015-02-05 | 22
00004 | 2015-03-11 | 26
00006 | 2015-04-12 | 12
00007 | 2015-03-02 | 12

谢谢,

3 个答案:

答案 0 :(得分:0)

你可以试试这个:

SELECT TOP 5
    Order,
    Del_Date,
    Lead_Time
FROM
    [TABLE]
...
ORDER BY
    Del_Date DESC

答案 1 :(得分:0)

您可以像Matteo建议的那样修改数据集定义,或者将过滤器应用于显示数据的对象。根据您的问题,我假设您要使用显示数据的对象来过滤结果。

要获取前5个日期,请将数据对象排序更改为日期字段,并将“Z到A”排序。然后在过滤器下,在表达式框中选择所需的日期字段。将运算符设置为“Top N”并将值设置为“= 5”。

答案 2 :(得分:0)

如果tablix过滤器抱怨前5名,那么你可以将row_number(排名)带到tablix并按排名< = 5

进行过滤
相关问题