Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 在SSRS报告中,我可以使用哪些其他表达式来计算每日平均金额_Reporting Services_Expression_Average - Fatal编程技术网

Reporting services 在SSRS报告中,我可以使用哪些其他表达式来计算每日平均金额

Reporting services 在SSRS报告中,我可以使用哪些其他表达式来计算每日平均金额,reporting-services,expression,average,Reporting Services,Expression,Average,我正在用两个矩阵表构建一个报告,其中包含不同(但非常相似)的数据集。我需要计算用户输入想要查看的月份和年份的平均每日交易量。我能够在第一个表上使用以下表达式,没有任何问题 =sum(fields!tot_rev.Value)/fields!Day.Value 其中“Day”是一个月中的一天。我在查询中使用“Day(trn_dt)as Day”从datetime字符串中提取日期 我尝试在第二个表中使用相同的表达式,但它只返回总数。如果我使用 =sum(fields!amt.Value)/coun

我正在用两个矩阵表构建一个报告,其中包含不同(但非常相似)的数据集。我需要计算用户输入想要查看的月份和年份的平均每日交易量。我能够在第一个表上使用以下表达式,没有任何问题

=sum(fields!tot_rev.Value)/fields!Day.Value
其中“Day”是一个月中的一天。我在查询中使用“Day(trn_dt)as Day”从datetime字符串中提取日期

我尝试在第二个表中使用相同的表达式,但它只返回总数。如果我使用

=sum(fields!amt.Value)/countdistinct(fields!Day.Value)

它返回的值似乎是随机的(我不知道它是如何通过任何计算得出该值的)

我能够成功获得平均值的唯一方法是在表达式中输入天数

=sum(fields!amt.Value)/22
但是我需要这个来处理参数,并且天数不是恒定的

以下是我从dataset1获得的数据示例:

SELECT        MONTH(inv_dt) AS Month, DAY(inv_dt) AS Day, YEAR(inv_dt) AS Year, bill_by, inv_no, tot_rev
FROM            inv_info
WHERE        (status_cd IN ('FF', 'FP')) AND (MONTH(inv_dt) = @Month) AND (YEAR(inv_dt) = @Year)
 
月、日、年、开票人、存货号、总修订

2020年10月23日,ERSA,404444881

10、23、2020、ERSA、40443、2043

2020年10月22日,戴科,404352504

2020年10月22日,ERSA,4043120524

以下是数据集2(有问题的表)中的示例:

年、月、日、登记号、金额、会计单位

2020,10,140113377.96,JLMA

2020,10,1401156637.07,NASO

2020、10、240104790、MCGO

2020,10,2401061406.25,麦高

2020,10,340100239.77,JEDX

在所附图片中,左上角的表达式是:
=MonthName(Fields!MONTH.Value,false)

在数据字段中,月的日期与每个处理器的总计数(交易计数)和总和(acc_by/bill_by)一起列在左侧

我使用
=iif(isnothing(总和(字段!金额值)),0,总和(字段!金额值))
作为金额字段的表达式

列total是当天所有处理器的总计数和总和

行合计是处理器的平均每日计数和平均每日金额,在合计列和合计行相交的位置,它是该月的平均每日计数,我也想显示该月的平均每日交易金额,但这是无法正常工作的

见附图:


有人知道我还可以尝试什么吗?

在显示日期之前,不要将日期分解为其组成部分,甚至可以使用格式来显示日期部分,而无需将日期转换为整数或字符串。这样就引入了很多计算错误

在查询中保留inv_dt和trn_dt作为日期时间值,并以这种方式将它们引入SSR。在SSRS中,使用日期格式值仅显示年份或月份

要计算每日平均值,请在当天的SSRS报告中创建分组。选择一个易于理解的组名,如InvoiceDate或其他名称。然后使用平均值(字段!金额值,“发票日期”)。这将告诉SSR平均分组内的金额(每天)。如果需要,您可以通过
Avg(Avg(fields!amt.value,“InvoiceDate”))来计算平均值。

请花点时间学习如何在SQL和SSRS中操作日期。您的查询结果将更加准确,您的同事在维护代码时会感谢您

作为我所说内容的一个示例,看看您是否能够在我本周更新的一些DB2代码中发现逻辑错误(提示问题发生在1月份:


您可以编辑您的问题,并从每个数据集(包括数据类型)添加一个数据样本,以及基于该样本数据的预期结果。如果您的报告有任何分组,请显示您的报告的屏幕截图,其中包括可能会影响答案的任何行或列组。如果您希望我进一步澄清,请告诉我。
SELECT        YEAR(trn_info.trn_dt) AS YEAR, MONTH(trn_info.trn_dt) AS MONTH, DAY(trn_info.trn_dt) AS Day, trn_info.reg_no, trn_dtail.amt, trn_info.acc_by
FROM            trn_info LEFT OUTER JOIN
                         trn_dtail ON trn_info.trn_no = trn_dtail.trn_no
WHERE        (trn_info.status IN ('FP', 'FF')) AND (trn_info.tpe_cd IN ('AI', 'BI')) AND (trn_dtail.rte_cd = 'TT') AND (MONTH(trn_info.trn_dt) = @Month) AND (YEAR(trn_info.trn_dt) = @Year)
  AND Month(CUST.acct_svc_strt_d) >= (Month(CURRENT DATE) - 1)
  AND Year(CUST.acct_svc_strt_d) = Year(CURRENT DATE)