【问题标题】:SSRS - avg function by subtotalsSSRS - 小计的平均函数
【发布时间】:2018-02-02 08:08:00
【问题描述】:

我有详细信息、小计和总计。

当我将 avg 函数放在总计行中时,我得到了每一行的平均值。

我需要小计的平均值

怎么做?

第 1 周
第 1 天..... 2
第 3 天..... 3
第 4 天..... 4
第 6 天..... 2
总计.... 11 sum()
第2周
第 1 天..... 3
第 2 天..... 2
总计..... 5 sum()
总计
...... 16 sum() 好的
...... 2,66666 avg() 这里应该是 (11+5)/2 =8

Result after implementing solution

【问题讨论】:

  • 到目前为止你做了什么?展示你的代码和努力。
  • 到目前为止:=Avg(Fields!KosztyRazem.Value) 在总字段中返回所有字段的平均值 =Avg(sum(Fields!KosztyRazem.Value)) - 也尝试过 =ReportItems!TextBox245.Value (小计所在的texbox)-错误并且没有其他想法
  • 通过编辑您的代码来更新您的问题。不要让此类信息出现在 cmets 中。你更有可能有人会帮助你。
  • 您能否发布一些示例数据以及您对结果的期望?
  • 我已经编辑了主帖并添加了示例

标签: reporting-services


【解决方案1】:

我创建了一个数据集来复制您的示例数据,如下所示:

DECLARE @t TABLE (week int, day int, amount int) 
INSERT INTO @t VALUES 
(1, 1, 2), 
(1, 3, 3), 
(1, 4, 4), 
(1, 6, 2), 
(2, 1, 3), 
(2, 2, 2)

SELECT * FROM @t

然后我像你所做的那样构建了一个简单的 tablix(或多或少)

我包含了您为说明而获得的不正确结果,然后添加了一个新表达式来正确计算。

结果是这样的

您可以忽略其他数据集,这只是我用于测试的报告。这里只使用 dataset3。

使用的表达式是这样的

=Sum(Fields!amount.Value) / CountDistinct(Fields!week.Value)

您只需对其进行编辑以匹配您的字段名称。它基本上只是将所有详细信息量相加,然后除以数据集中不同的周数。

【讨论】:

  • 几乎可以工作了。如果 emty 周则不计入,但应计为 0。链接中主帖中的示例:实施解决方案后的结果
  • 如果您有空的一周,它仍然必须在您的数据集中。如果您有一个日期表,则加入该表,以便在空周的数据集中返回 0 或 null 值。如果你不能这样做,那么你必须得到最大周数减去最小周数并用它来除以。如果周“数字”不是实数,但您需要先去掉不是周数的位。
  • 已解决:=sum(Fields!KosztyRazem.Value)/countdistinct(Fields!Tydzien.Value,"Tablix3")。在末尾添加参数 - tablix 的名称
  • 太棒了。如果您觉得我的回答有用,请点赞,或者如果您认为它回答了您的问题,请将其标记为已接受。
  • 这很有帮助。我已尝试投票,但消息表明我还没有足够的声誉并且已记录但未发布
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
相关资源
最近更新 更多