我有一个返回销售代表编号,类别,销售的查询。
结果是这样的:
有4个类别称为G1,G2,G3,G4
。
正如您所见,销售代表11
每个类别售出10个(黄色行)。
但代表12
仅针对类别G3
和G4
销售。
我们的想法是在报告中显示所有类别,并在0中填充所有未在该特定类别上销售的人。
必须按销售代表进行分组,因此,如果您按销售代表进行Tablix分组,您将拥有以下内容:
但你想要这样的东西:
我可以用任何表达来添加这些吗?
到目前为止我所做的是创建一个组,当然这个组是我的销售代表并组合该列的单元格并为每个类别创建一个Row组,如下所示:
但是如果您执行该报告,它将重复所有类别G1,G2 ......对于该特定销售代表的每个类别都存在。
另一个问题是,您如何评估报告中的硬编码类别,如果您不能将Iif("G1" = Fields!Category.Value,Fields!Sales.Value,"0")
与G1
或Null
进行比较,则您的数据源中不存在该类别IsNothing
,您正在比较它的存在。
答案 0 :(得分:3)
我认为您可以在查询级别使用T-SQL顺利实现这一目标。我不知道为什么你不使用最简单的方法来应用这种逻辑,因为在T-SQL中你可以使用几乎每个逻辑。
但是我喜欢这种挑战,所以我提出了这个可能的解决方案。
这是我的样本数据集:
在SSRS数据集中(不在T-SQL中)我添加了一个名为Another
的计算字段
另一个字段设置为以下表达式:
=Fields!SalesRep.Value & "-" & Fields!Category.Value
我添加了一个包含以下数据排列的Tablix
正如我之前提到的,类别字段是硬编码的,右侧列是Sales
设置为此表达式:
=iif(IsNothing(lookup(Fields!SalesRep.Value & "-" & ReportItems!Textbox62.Value,
Fields!Another.Value,Fields!Sales.Value,"DataSet7")),0,
lookup(Fields!SalesRep.Value & "-" & ReportItems!Textbox62.Value,
Fields!Another.Value,Fields!Sales.Value,"DataSet7"))
注意:
ReportItems!Textbox62.Value
对应于G1
的文本框 被硬编码了。您必须替换文本框参考 在每个类别的Tablix中对应。
它将预览下面的Tablix。
如果这有用,请告诉我。