0

我想在Visual Studio 2008的SSRS报表中放置一个子表。我遇到的问题是正确使用功能,并通过我的主要报告引用报告项目。在我的报告中,当主查询返回一个特定的值时,我有一个表示颜色代码的表达式。在我的子表,我想算特定值的每个实例这样的例子:在Visual Studio中的子表中使用聚合函数

Main Report 

Supervisor   Employee Ranking 
Supervisor 1   Employee 1 Meets (Labeled Orange) 
Supervisor 1   Employee 2 Outstanding (Labeled Yellow) 
Supervisor 2   Employee 3 Meets 
Supervisor 2   Employee 4 Meets 

Subtable    Outstanding  Meets 
Supervisor 1    1   1 
Supervisor 2    0   2 

我已经使用下列公式

=count(Reportitems!Ranking.Value, "Meets", 0) 
=count(Reportitems!Ranking.Value, "Orange", 0) 
=count(Reportitems!Ranking.Value = "Meets") 
=count(Reportitems!Ranking.Value = "Orange") 

我也改变了=count=countrows=countdistinct

尝试

有人可以帮忙吗?我对任何事都开放,我只想让报告和Subtable正常工作。

回答

0

一旦你通过主管分组表(它看起来像你这样做),你需要添加一列有两个条件表达式:

杰出柱:

=Sum(IIf(Fields!Ranking.Value = "Outstanding", 1, 0)) 

会见柱:

=Sum(IIf(Fields!Ranking.Value = "Meets", 1, 0)) 

这些会计数发生优秀会见每个主管返回。

这里假设Ranking只是您的数据集中的一列 - 您提到基于此的颜色编码,但我们只对基础值而不是颜色感兴趣。

评论

如果Ranking后编辑是基于关闭的表达,你可以简单地添加到这个原始表达式以上,即是这样的:

=Sum(IIf(<MyExpression> = "Outstanding", 1, 0)) 

这是一个有点通用的答案的因为我不知道你的具体例子是什么,但是你可以毫无问题地在其他表达式中嵌套表达式。

对于一个更优雅的解决方案,你应该考虑增加一个计算字段资料集 - 这个曾经定义表达式在数据集中,那么你可以使用它像报表本身内的正常场。通过这种方式,您可以在数据集中创建一个名为Ranking的计算字段,然后您可以使用类似于原始答案中引用此新计算的Ranking字段的表达式。

+0

“满足”和“杰出”的值来自表达式,而不是来自原始查询的数据集的一部分。有没有办法使用表达式从表达式中提取返回的数据? – dgamboa9999

+0

@ user3216484,我在答案中增加了更多细节。 –

+0

当我把它放在里面时,我收到错误“聚合函数只能在页眉和页脚。“我试图添加列到查询中,但由于我们不断变化的数量和排名,因为收集更多的钱进来,我无法得到它的工作。= iif(字段!KPO.Value是什么,iif(字段!Score.Value> = ReportItems!K_Score.Value,“E”,iif(Fields!Score.Value> = ReportItems!K_Score2.Value,“M”,“OP”)),“OS”)是表达式I用于计算值,但由于需要条件评分,我无法在查询中使用它。 – dgamboa9999