如何汇总和替换列数据并在MS Access查询中对所有值进行平均?

时间:2009-05-20 19:20:36

标签: sql ms-access vba insert sum

我从一个名为analyzeCopy的表中提取数据,并使用它来覆盖另一个名为analyze的表中的所有信息。我正在排序/过滤/操作的列是readings_miu_id,ReadDate,ReadTime,RSSI。我目前正在将数据从analyzeCopy移动到使用以下sql进行分析,以获得每个唯一读取数据_miu_id和ReadDate的最后一次(ReadTime中的最高值,因为它被格式化为军事时间)。

SELECT readings_miu_id, Reading, ReadDate, ReadTime, MIUwindow, SN, Noise, RSSI, ColRSSI,MIURSSI,Firmware,CFGDate,FreqCorr,Active,MeterType,OriginCol,ColID,Ownage,SiteID,PremID, prem_group1, prem_group2,ReadID  
    INTO analyzed  
    FROM analyzedCopy AS A  
    WHERE  ReadDate BETWEEN #04/21/09# AND #04/29/09#  AND ReadTime=  (SELECT TOP 1 analyzedCopy.ReadTime FROM analyzedCopy  
    WHERE analyzedCopy.readings_miu_id = A.readings_miu_id  AND analyzedCopy.ReadDate = A.ReadDate  
    ORDER BY analyzedCopy.readings_miu_id, analyzedCopy.ReadDate, analyzedCopy.ReadTime DESC)

   ORDER BY A.readings_miu_id, A.ReadDate, A.ReadTime DESC ; 

我需要在此代码中添加“{分析”每个readings_miu_id一条记录的表格,同时更改ReadDate以显示所需的日期范围(在这种情况下,它需要显示类似“4/21/09到4/29/09”的内容,同时还取每个DISTINCT reading_miu_id的RSSI值的平均值,并将该平均RSSI插入到分析表中的RSSI字段中。

为了回顾/概述,我有一个代码可以将来自另一个表的所有记录插入表中,其中ReadTime是每个唯一readings_miu_id和ReadDate组合的最高值。我需要在此代码中添加能够获取已排序的平均RSSI(上一句中的步骤)记录并将该平均值插入到分析中的RSSI并将日期范围插入到分析中的ReadDate的能力

我意识到我可能在这里要求很多,如果我需要使用两个或三个不同的步骤或SQL代码那么好。这个程序将不会被许多人使用,而我的老板并不关心代码是否混乱或需要一段时间才能运行。我因为被迫做得如此低效和凌乱而感到畏缩,但这是我被迫做的事情。

我应该能够在那里使用sum()功能来总结RSSI值,我只是不确定如何做到这一点,同时将总和除以每个DISTINCT readings_miu_id的计数,同时做所有事情否则我需要完成这些数据。使用VB.NET 2008和sqlServer我可以通过一些逻辑语句运行每一行来完成我需要的数据,但我不知道如何在SQL或VBA中这样做。


编辑:

如果我没有详细解释,请告诉我,我会尽力纠正并尽我所能添加信息。

1 个答案:

答案 0 :(得分:0)

一次解决一个问题。为每个步骤创建表格,AnalyzedStep1,AnalyzedStep2等。