SSRS从不同范围划分的总和返回0

时间:2016-07-17 19:29:09

标签: sql reporting-services expression aggregate division

我有一个分组数据集。从父组中,组名称为:  公司>植物>细节。最后,我希望能够获得每个工厂的销售额,并了解整个公司销售额的百分比。假设该公司的总销售额为500美元,并且该公司的销售额为"工厂A"是100美元和"植物B"销售额为400美元。我认为我需要在Plant分组级别使用表达式,如:

=Sum(Sales)/Sum(Sales, "Company")

我得到植物A的.2和植物B的.8但是如果我这样做,我得到0.我完全失去了。对此的任何帮助将不胜感激。

其他信息:

我的确切设置比我下面给出的示例稍微复杂一些,但我相信一般的想法仍然保持不变。我总共有6组:

enter image description here

圈出的小组相当于"植物"在我的例子中分组。这是我的Tablix中GroupBy组的行组(箭头指向它的那个)。

enter image description here

上图中圈出的表达式是有问题的表达式来获取我的百分比(现在实际上只是一个小数,还没有格式化为百分比)。

 =sum(Fields!ActualCurrent.Value)/sum(Fields!ActualCurrent.Value, "Company")

字段!ActualCurrent.Value相当于" Sales"在我上面的例子中。上面的表达式为所有组返回0。但是,如果我将其改为

 =sum(Fields!ActualCurrent.Value)+sum(Fields!ActualCurrent.Value, "Company")

它将产生相当于600美元的工厂A"和#34;工厂B的900美元。"

在添加两个总和时,我似乎无法找到它如何按预期做出反应,但在分割时产生0。

1 个答案:

答案 0 :(得分:1)

查看您在哪里使用该表达式来确定这里的错误会很有用,但我认为您可以使用本指南来获得所需的结果。

创建一个这样的Tablix:

enter image description here

注意我已将CompanyPlant字段添加为组。我也删除了详细信息组。右键单击详细信息并选择Delete group并设置仅删除组选项。

enter image description here

现在在百分比列中使用以下表达式:

=FORMAT(
SUM(Fields!Sales.Value,"Plant")/SUM(Fields!Sales.Value,"Company")
,"P2"
)

每个计划的总和除以整个公司集团的总和。没有必要,但我使用FORMAT函数将表达式返回的浮点值格式化为百分比格式,使用两个小数位。

它应该显示如下:

enter image description here

更新:尝试确定特定群组的总和:GroupBy

=sum(Fields!ActualCurrent.Value, "GroupBy")/sum(Fields!ActualCurrent.Value, "Company")

更新2:格式化单元格以显示十进制数字。

使用thiss表达式:

=FORMAT(
sum(Fields!ActualCurrent.Value, "GroupBy")/sum(Fields!ActualCurrent.Value, "Company"),
"F2"
)

它将表达式返回的值格式化为带有两位小数的浮点数。

如果要以百分比格式显示值,请在F2的表达式中替换P2(具有两位小数的百分比格式。)

如果有帮助,请告诉我。