我从一个名为analyzedCopy 的表中提取数据,并使用它来覆盖另一个名为analyzed 的表中的所有信息。我正在排序/过滤/操作的列是 readings_miu_id、ReadDate、ReadTime、RSSI。我目前正在使用以下sql将数据从analyzedCopy移动到analyze,以获取每对唯一的readings_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"),同时还取每个 RSSI 值的平均值,DISTINCT reading_miu_id
并将该平均 RSSI 插入分析表的 RSSI 字段中。
为了回顾/概述,我有一个代码将另一个表中的所有记录插入到一个表中,其中ReadTime
每个唯一readings_miu_id
和 ReadDate 组合的最高记录。我需要在此代码中添加获取已排序(上一句中的步骤)记录的平均 RSSI 并将该平均值插入到分析中的 RSSI 并将日期范围插入到ReadDate
分析中的能力。
我意识到我可能在这里要求很多,如果我需要使用两个或三个不同的步骤或 SQL 代码,那很好。这将进入的程序不会被很多人使用,我的老板不在乎代码是否混乱或运行需要一点时间。我对被迫做如此低效和混乱的事情感到畏缩,但这就是我被迫做的事情。
我应该能够使用sum()
那里的功能来总结 RSSI 值,我只是不确定如何做到这一点,同时将总和除以每个的计数,DISTINCT readings_miu_id
同时对这些数据执行我需要做的所有其他事情。使用 VB.NET 2008 和 sqlServer,我可以通过一些逻辑语句运行每一行来执行我需要对数据执行的操作,但我不知道如何在 SQL 或 VBA 中执行此操作。
编辑:
如果我解释的不够好,请告诉我,我会尽我所能纠正并添加信息。