2016-07-05 110 views
1

我正在使用Microsoft SQL Server 2008 R2 Report Builder 3.0。我已经花了8个小时在这个目前为止,而且仍然在方形1处。 我的目标是制作一个图表,显示每个时间段的平均“延迟时间”(以天为单位)。 我的问题是,当我有一个相同的文件被引用2种不同的服务时,我的图仍然编译平均值,而不区分这些情况。筛选器双重值Report Builder 3.0 ssrs

例如: 患者A被交给服务1,延迟时间为10天,服务2为延迟4天。

现在:图形确实(延迟N + 10 + 4)/ n的

我需要:(延迟N + 4)/ N,即2个延迟的最长延迟被忽略。

我试过使用数据集上的过滤器,改变系列组本身的表达式等。迄今为止不成功。我能做的最多的事情就是让图表忽略所有有2次延迟的情况,这绝对不是好事。

另外,我想在下面以这种方式使用Min函数,但它给了我最初的结果(所有延迟都考虑在内)。所以,再次不好。

=Avg(IIF(CountDistinct(Fields!No_dossier_local.Value)>Count(Fields!No_dossier_local.Value), Min(Fields!Delay.Value), Fields!Delay.Value)) 

请帮忙, 谢谢!

回答

0

尝试使用以下方法,首先检查延迟的计数是否等于1,然后输入该值,否则输入最小延迟值。

= AVG(IIF(计数(场!Delay.Value)= 1,场!Delay.Value,闵(领域!Delay.Value)))

+0

彼得嗨!感谢提示,我只是尝试了一下,但不幸的是,最终做的是在整个时间段内选择最小值,即我有一个图表,其中x是时间(年和周期),y是延迟在几天内。因此,当我尝试使用您的代码或通过说[Fields!No_dossier_local.Value]来替换[Fields!Delay.Value]时,无论该时间范围内的其他患者延迟如何,都会带来最短的患者延迟。但是,非常感谢您的帮助,但我会继续朝这个方向进行挖掘。 –

+0

只需添加一些细节(如果它出现有用)。原始数据集具有以下维度:年份,期间(一年中的13个期间),诊所位置(2个位置),患者人数和服务类型(生理,人格等)。我期望的最终结果是延迟。我有一个可以包含的度量,也称为参考数量。所以说,如果我删除了我的数据集中的[服务类型]维度,那么给定患者的参考数可能会高于1.但是,如果我将[服务类型]留在了我的数据集中,那么数字保持1. –

+0

其实,有没有一种方法使用Cstr或其他方式使其明白,如果患者编号相同,请尽量少用?所以,有点像你的建议,而不是Count()?我试过= avg(IIF(Fields!No_dossier_local.Value = Fields!No_dossier_local.Value,Fields!Delay.Value,Min(Fields!Delay.Value))),但它给了我和表达式相同的结果。 ?<(-.-“<) –