根据日期过滤掉历史记录

时间:2013-03-31 18:34:15

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

我正在使用SQL Server报告工具2008,并创建了一个表格,如下所示。

我有一个产生以下结果的数据集。基本上每次充电场在数据库内发生变化时,表格都会给出当前充电的停止日期,然后是新充电的新生效日期。这通常导致空白停止日期。 (例如,UCN 1和UCN 495)如果从未收取任何费用,那么您也会获得一个空白的停止日期。 (例如UCN 11)

我发现如果您使用下面的年份函数作为计算字段,您会得到一个空白字段的结果1,然后可以使用过滤器功能仅包含“1”以查找所有当前费用。< / p>

=Year(Fields!CEASED_DATE.Value)

在某些情况下,在这种情况下,UCN 492没有获得新的生效日期,因此没有空白的停止日期。在40,000记录数据库中,这只发生了100次。

我想要做的是用当前的电荷列出数据库中的每个UCN,或者如果没有充电电流则将该字段留空。基本上我想过滤掉历史。

这可能吗?

UCN......CEASED_DATE....EFFECTIVE_DATE.....Charge  

1........12 July 2009...11 July 2009.......Rate 3  
1.......................12 July 2009.......Rate 4  

11  

492......12 July 2009...01 January 1900....Rate 4  
492......15 July 2009...12 July 2009.......Rate 5  
492......31 July 2011...15 July 2009.......Rate 2  

495......12 April 2009..04 November 1946...Rate 2  
495.....................12 April 2009......Rate 3

1 个答案:

答案 0 :(得分:0)

您是否可以在报告服务的UCN仅分组的Tablix中使用以下功能?

=max(iif(year(Fields!CEASED_DATE.Value)=1, Fields!CHARGE.Value, ""))

或者在类似于?

的数据集中
Select UCN,
   Max(case when ceased_date = '' then charge else '' end) current_charge
From charges
Group by UCN