1

我从一个名为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 中执行此操作。


编辑:

如果我解释的不够好,请告诉我,我会尽我所能纠正并添加信息。

4

1 回答 1

0

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

于 2009-05-20T20:14:03.270 回答