Sql 计算超过日期的平均值
我试图计算一段时间内的平均值:我在ssrs中创建了一个tablix: 我在查询中使用了以下表达式: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
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的平均值。谢谢你的帮助,但这不是我查询中的真正问题,我将计算日期时间内的平均值。