Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
Sql 计算超过日期的平均值_Sql_Reporting Services - Fatal编程技术网

Sql 计算超过日期的平均值

Sql 计算超过日期的平均值,sql,reporting-services,Sql,Reporting Services,我试图计算一段时间内的平均值:我在ssrs中创建了一个tablix: 我在查询中使用了以下表达式: Avg(case when CounterName = 'Count 1' then calculationUnits end) as Average 图中所示的平均值: =SUM(Fields!Prod.Value)/3 我将这些值的总和除以3(一天内有3班),但我希望得到一个该日期的平均值 我可以在我的查询中使用以下内容: OVER(PARTITION BY [intervald

我试图计算一段时间内的平均值:我在ssrs中创建了一个tablix:

我在查询中使用了以下表达式:

   Avg(case when CounterName = 'Count 1' then calculationUnits end) as Average
图中所示的平均值:

=SUM(Fields!Prod.Value)/3
我将这些值的总和除以3(一天内有3班),但我希望得到一个该日期的平均值

我可以在我的查询中使用以下内容:

OVER(PARTITION BY [intervaldate])

我想将每台机器的总和除以日期值的数量

尝试只获取日期集中每个日期的行,并使用SSRS函数获取平均值和总和

要在SQL中筛选查询,请使用SQL语句中的参数。 您的查询应该如下所示:

select
    *
from
    yourData
where
    date BETWEEN @StartDate AND @EndDate
此语句的示例数据:

yourDate               M101   M102  M103
2015-12-24 12:00:00    100    34    54
2015-12-25 12:00:00    25     67    87
2015-12-26 12:00:00    30     434   54
2015-12-27 12:00:00    140    42    65
2015-12-28 12:00:00    21     66    77
现在创建一个包含SSRS报告中数据的tablix。在详图组外添加两个新行:

现在在新行中添加表达式,以获得总和和平均值,例如M101:

总而言之:

=Sum(Fields!M101.Value)
平均值(超过日期)


尝试只获取日期集中每个日期的行,并使用SSRS函数获取平均值和总和

要在SQL中筛选查询,请使用SQL语句中的参数。 您的查询应该如下所示:

select
    *
from
    yourData
where
    date BETWEEN @StartDate AND @EndDate
此语句的示例数据:

yourDate               M101   M102  M103
2015-12-24 12:00:00    100    34    54
2015-12-25 12:00:00    25     67    87
2015-12-26 12:00:00    30     434   54
2015-12-27 12:00:00    140    42    65
2015-12-28 12:00:00    21     66    77
现在创建一个包含SSRS报告中数据的tablix。在详图组外添加两个新行:

现在在新行中添加表达式,以获得总和和平均值,例如M101:

总而言之:

=Sum(Fields!M101.Value)
平均值(超过日期)


我真的看不出代码片段和示例数据之间的关系。但是,您想要的逻辑可能是:

Avg(case when CounterName = 'Count 1' then calculationUnits end) as Average
请注意,没有
else
子句。如果没有
else
大小写
表达式的计算结果为
NULL
,该值被
avg()
忽略


您的表达式有
else 0
。这被视为合法值,因此不匹配的行会影响最终结果。

我看不出代码片段与示例数据之间的关系。但是,您想要的逻辑可能是:

Avg(case when CounterName = 'Count 1' then calculationUnits end) as Average
请注意,没有
else
子句。如果没有
else
大小写
表达式的计算结果为
NULL
,该值被
avg()
忽略


您的表达式有
else 0
。这被视为合法值,因此不匹配的行会影响最终结果。

我使用参数startdate和enddate。用户可以选择日期。这种方法没有问题,在SQL“where-sqldate>@Startdate和sqldate<@Enddate”中的where语句中使用,在处理之前过滤日期集。您可以详细解释一下吗?我不知道如何在SSRS中实现这一点?我从SSRS函数中得到总和,但我不知道如何使用平均值函数谢谢你的回答,但不幸的是,这不是我问题的正确答案。我需要将机器的总和除以dateValue的数量,如果一个日期有一行,那么我使用的参数是startdate和enddate。用户可以选择日期。这种方法没有问题,在SQL“where-sqldate>@Startdate和sqldate<@Enddate”中的where语句中使用,在处理之前过滤日期集。您可以详细解释一下吗?我不知道如何在SSRS中实现这一点?我从SSRS函数中得到总和,但我不知道如何使用平均值函数谢谢你的回答,但不幸的是,这不是我问题的正确答案。我需要将机器的总和除以dateValue的数量,如果一个日期有一行,那么它就是这样做的谢谢你的帮助,但这不是我查询中的真正问题,我将计算datetime的平均值。谢谢你的帮助,但这不是我查询中的真正问题,我将计算日期时间内的平均值。