gpt4 book ai didi

reporting-services - SSRS小计列与表达式

转载 作者:行者123 更新时间:2023-12-04 07:52:43 24 4
gpt4 key购买 nike

使用Visual Studio 2010和SQL Server 2012

我制作了一个SSRS报告,该报告要求使用自定义方法来汇总和得出资产百分比以及从资产百分比得出的其他计算的总计。我不能简单地使用“添加总计函数”,因为如对表达式求和时通常会变灰。我无法手动计算小计,因为出现嵌套的汇总错误。

我用来制作此SSRS报告的软件提供了各种存储过程和功能,以使用派生的计算来制作报告。该存储过程包含“资产百分比”列,但是由于报表被过滤为仅显示普通股,因此“资产百分比”功能在计算中仍然错误地计算了未过滤资产。所考虑的资产占总资产的59.7%,但我需要报告表现得好像它们是资产的100%。

要了解此报告中的一些数学运算,请查看以下报告输出。请注意,我要的报告仅包含普通股,该普通股占上述总资产的59.7%。



该报告表示当前正在其他报告程序中计算的期望输出。该报告有两个表



公司销售百分比是一个硬编码值,代表国内或国际销售百分比。您可以在国际和国内表格中看到此资产和%投资组合资产。

投资组合资产百分比是通过将给定资产的资产百分比乘以硬编码的公司销售价值得出的。在第一个示例中,麦当劳的2.1%投资组合资产为6.6%* 32%。

如果仅计算普通股(不包括现金),则6.6%是麦当劳在投资组合中所占资产的百分比

McDonald's Value     Total Portfolio Value       %
4,950.00 / 73,919.50 = 6.6000%


国内/国际百分比细分

Total % Sales       %Split     Region
6.60% 32% 2.1% Domestic
6.60% 68% 4.5% International


现在这是我的报告输出。它与我将显示的设计布局略有不同,因为在此预览示例中,出于说明目的,我添加了列并更改了标题。到目前为止,我只是试图使“家用”表工作。一旦工作,我将建立国际表。我还有一些其他的列用于故障排除。



我尝试了几种方法来计算投资组合资产。我可以得到正确的单个行值,但是由于嵌套的聚合错误(使用数据范围时对表达式求和并已求和),我无法使用不同的方法使小计值正确。总计也很重要,但对于现在我只是想让小计工作。

这是一种获取资产百分比行详细值的方法。在计算的百分比列中使用。此列是不允许我进行小计的,没有嵌套的聚合错误。



当我尝试使用以下表达式获取小计时,我得到了嵌套聚合错误

= SUM(Fields!MarketValue.Value / Sum(Fields!MarketValue.Value,“ DataSet1”))

ERROR Error 2   [rsInvalidNestedDataSetAggregate] The Value expression for the text box ‘Textbox39’ has a nested aggregate that specifies a dataset scope.  Inner aggregates cannot specify a dataset scope.


如果使用存储过程中包含的PercentAssets字段,我可以进行小计并获得总计而没有错误,但该值是过滤后的值,如果我将此过滤后的百分比乘以公司销售所得的总和为59.7,则该值是错误的。



最后,我尝试使用自定义VBA代码获取小计和总计。但是,这提供了计算的百分比的总计,而不是SectorName组所需的小计。

这是我在网上找到的VBA代码:
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/1d3c5ec1-89cb-4108-8637-ff434027b1ec/sum-an-expression-value-ssrs

Dim public nettotal as Double
Public Function Getvalue (ByVal subtotal AS Double) AS Double
nettotal = nettotal+ subtotal
return subtotal
End Function
Public Function Totalvalue()
return nettotal
End Function


部署代码


总之,我需要将计算出的“百分比”列的值乘以“公司”销售额。我需要对这些计算的结果进行小计。

如果您查看“信息技术部门分组”,您可以看到原始报告正确地归为32.8小计。

我的报告错误地到达了100%,因为那是计算百分比的运行总计。

这是原始rdl的链接

https://dl.dropboxusercontent.com/u/87501202/InternationalDomestic.rdl

最佳答案

看起来像您的代码:

=SUM(Fields!MarketValue.Value/Sum(Fields!MarketValue.Value, "DataSet1"))


不太正确...尝试以下方法:

=SUM(Fields!MarketValue.Value)/Sum(Fields!MarketValue.Value, "DataSet1")


稍微分解一下,第二段代码是 expression / expression;现在,只有两个 SUM表达式具有所需的不同范围-第一个表达式看起来像语法略有偏离,因此会出现错误。

关于reporting-services - SSRS小计列与表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19084296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com