私は、analysedCopy と呼ばれる 1 つのテーブルからデータを取得し、それを使用して別のテーブルのすべての情報を上書きします。私がソート/フィルタリング/操作している列は、readings_miu_id、ReadDate、ReadTime、RSSI です。私は現在、readings_miu_id と ReadDate の一意のペアごとに最後の時刻 (ミリタリー時間にフォーマットされているため、ReadTime の最大値) のみを取得する次の SQL を使用して、analysedCopy からanalyzeed にデータを移動しています。
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
このコードに、目的の日付範囲を表示するように変更しながら、テーブルごとに 1 つのレコードを「分析」する機能を追加する必要がありReadDate
ます (この場合、「4/21/09 から 4/29 のようなものを表示する必要があります」)。 /09") また、それぞれの RSSI の値の平均を取り、DISTINCT reading_miu_id
その平均 RSSI を分析されたテーブルの RSSI フィールドに挿入します。
要約/概要を説明するために、一意の ReadDate の組み合わせReadTime
ごとに最高の別のテーブルからすべてのレコードをテーブルに挿入するコードがあります。readings_miu_id
そして、このコードに、既にソートされた (前の文のステップ) レコードの平均 RSSI を取得し、その平均を分析済みの RSSI に挿入し、日付範囲を分析済みに挿入する機能を追加する必要がありますReadDate
。
私はおそらくここで多くのことを求めていることを認識しています.2つまたは3つの異なるステップまたはSQLコードを使用する必要がある場合は問題ありません. これが入っているプログラムは多くの人に使われることはないだろうし、私の上司はコードが乱雑であろうと、実行に少し時間がかかることであろうと気にしない. 私は物事を非効率で面倒なことを強いられることにうんざりしていますが、それは私がしなければならないことです.
sum()
そこにある機能を使用して RSSI 値を合計することができるはずですが、合計をそれぞれのカウントで除算し、DISTINCT readings_miu_id
このデータに対して必要な他のすべてのことを実行しながら、その方法がわかりません。VB.NET 2008 と sqlServer を使用すると、論理ステートメントを使用して各行を実行し、データに対して必要なことを実行できますが、SQL または VBA でそれを行う方法がわかりません。
編集:
説明が不十分な場合はお知らせください。できる限り情報を修正し、追加するよう努めます。