我有一个返回销售代表编号、类别、销售的查询。
结果是这样的:
有 4 个类别,称为 G1、G2、G3、G4
。
如您所见,销售代表 11
每个类别销售了 10 件(黄色行)。
但代表12
仅销售类别G3
和G4
。
其想法是在报告中显示所有类别,并用 0 填充所有未在该特定类别上销售的类别。
它必须按销售代表分组,因此如果您按销售代表进行 tablix 分组,您将得到如下所示的结果:
但是你想要这样的东西:
我可以使用任何表达式来添加这些吗?
到目前为止,我所做的是创建一个组,该组当然是我的销售代表,并组合该列的单元格并为每个类别创建一个行组,如下所示:
但是,如果您执行该报表,它将重复所有类别 G1、G2... 每当该特定销售代表存在该类别时。
另一个问题是,如果您的数据源中不存在硬编码类别,您如何评估报告中的硬编码类别,您无法创建 Iif("G1"= Fields!Category.Value,Fields!Sales.Value,"0")
因为您不是将 G1
与 Null
或 IsNothing
进行比较,而是比较它存在的内容。
最佳答案
我认为您可以在查询级别使用 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"))
Note:
ReportItems!Textbox62.Value
corresponds to textbox whereG1
was hardcoded. You have to replace the textbox reference for the corresponding in your tablix for every category.
它将预览下面的 tablix。
请告诉我这是否有帮助。
关于reporting-services - 当查询 SSRS 中没有数据时向报告添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33282098/