仅显示报告中的最新记录

时间:2016-04-14 19:23:02

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

我们有一份报告输出表A.我们在报告模型中添加了表B(我们在表B的报告中添加了一些字段),这是与表A的多对一关系。现在我们运行时在报告中,我们得到了多行,这是由于表A和表B之间的关系所预期的。

问题是,我们只想在报告中显示表B的最新记录,基于"创建日期"。

我尝试设置MAX(!fields.CreationDate)

我找到了以下信息:https://social.msdn.microsoft.com/forums/sqlserver/en-US/2bc16c90-21d6-4c03-a17f-4a5922db76fe/displaying-records-by-max-date-in-ssrs

但是当我做这样的事情时,我得到一个"不能使用聚合函数......"错误。

如果这是TableB的SQL语句,它将沿着这些行显示最近的记录:

SELECT DISTINCT     [ID],[PID],[InputDate],[Changed_Date] 从     (选择         [ID],[PID],[InputDate],[Changed_Date],     密度(经由Changed_Date desc按PID顺序划分)作为MyRank的dense_rank()     来自TableB    )作为RankSelect 在哪里MyRank = 1 按PID排序

这给了我TableB的最新记录。我在技术上知道我可以在报表模型中添加视图或其他内容,但我不想这样做,因为另一个报表运行可能需要TableB中所有记录的历史记录。所以我希望以某种方式将上述结果合并到报告中而不涉及报告模型。其中只有TableB的最新记录被纳入报告。 非常感谢我们如何将报告限制为仅显示表B中的最新日期记录。

2 个答案:

答案 0 :(得分:1)

对于您的表 B ,根据 MAX 日期 CreationDate 设置过滤器 >数据集

enter image description here

这将仅显示 CreationDate 与数据集中的MAX CreationDate匹配的记录。

答案 1 :(得分:0)

我无法找到过滤报表本身数据的解决方案,因此我从报表模型中删除了TableB,并将其替换为TableB视图,该视图仅返回与TableA链接的最新记录。不理想,因为我知道他们会在某个时候要求提供一份报告,以显示所有条目"来自TableB,但稍后会越过那座桥: - )