Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 我如何获得前一个日期的平均值并进行更新?

Sql 我如何获得前一个日期的平均值并进行更新?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我想写一个平均值的查询(这并不难),但当我得到平均值时,我想把它保存在某个地方。让我们来看看上个月表a的平均储蓄率。现在我再次运行查询,这将是当前月平均值。我想比较这两列,看看当前月平均数是否比上个月平均数增加 在比较之后,我想输出这两个函数的最大平均数。完成此操作后,我希望将当前月平均值移动到上个月平均值,以便在下个月运行查询时,其中一个变为旧平均值 这在sql中可能吗?或者有更好的方法吗?任何建议都会有帮助 在比较之后,我想输出这两个函数的最大平均数。完成此操作后,我希望将当前月平均值移动到

我想写一个平均值的查询(这并不难),但当我得到平均值时,我想把它保存在某个地方。让我们来看看上个月表a的平均储蓄率。现在我再次运行查询,这将是当前月平均值。我想比较这两列,看看当前月平均数是否比上个月平均数增加

在比较之后,我想输出这两个函数的最大平均数。完成此操作后,我希望将当前月平均值移动到上个月平均值,以便在下个月运行查询时,其中一个变为旧平均值

这在sql中可能吗?或者有更好的方法吗?任何建议都会有帮助

在比较之后,我想输出这两个函数的最大平均数。完成此操作后,我希望将当前月平均值移动到上个月平均值,以便在下个月运行查询时,其中一个变为旧平均值

据我所知,此操作是从所有历史记录中选择最大月平均值。所以你不需要保存当前月平均值和上个月平均值的记录。相反,一个包含所有历史月平均值的表格是有帮助的。假设有一个名为monthaverage的表,其中包含列(Id、Month、Average),您可以进行查询

SELECT TOP 1 T1.*
    , CASE WHEN 
        T1.Average > (SELECT TOP 1 T2.Average 
                      FROM monthaverage T2
                      WHERE T2.Month < T1.Month 
                      ORDER BY Month DESC) 
      THEN 'Increased' 
      ELSE 'Not Increased' 
      END
FROM monthaverage T1
ORDER BY T1.Average DESC

现在我只能得到平均值,甚至不知道如何开始比较两个月的其他部分。旧的月份平均值已经在数据库中。您可以使用avg(columnname),因为avg是一个内置函数。请提供查询以便我们可以帮助您?
SELECT TOP 1 *, CASE WHEN Average > LAST_VALUE(Average) OVER (ORDER BY Month) THEN 'Increased' ELSE 'Not Increased' END
FROM monthaverage
ORDER BY Average DESC