2 つのテーブルからデータを取得する必要があります:Neptune_FN_Analysis
とという名前のNeptune_prem
3 つのフィールドreadings_miu_id
(人の名前または項目番号に相当)、ReadDate
、ReadTime
(すべてが にありますNeptune_FN_Analysis
) があります。一部readings_miu_id
の には複数の が複数日含まれていますが、1 日ReadTime
ごとに入力された「前回」のみを取得したいと考えています。選択した範囲のエントリ日を持つ
すべての s が必要ですが、プルしている各レコードには最後に入力されたものだけが必要です。readings_miu_id
readings_miu_id
ReadTime
1つのテーブルに基づくこれまでの私の解決策は次のとおりです。
SELECT readings_miu_id, Reading, ReadDate, ReadTime, MIUwindow, SN, Noise, RSSI, OriginCol, ColID, Ownage
FROM analyzed AS A
WHERE ReadDate Between #4/21/2009# and #4/29/2009#
AND ReadTime=
(SELECT TOP 1 analyzed.ReadTime FROM analyzed
where analyzed.readings_miu_id = A.readings_miu_id
AND analyzed.ReadDate = A.ReadDate
ORDER BY analyzed.ReadTime DESC);
このソリューションを適応させようとするとFROM [tableName] as A, INNER JOIN
、エラーが発生するため実行できません。私の前任者が作成した元のコード (これは私が適応/修正しようとしているものです) は次のとおりです。
SELECT readings_miu_id, Reading, ReadDate,Format([MIUtime],'hh:mm:ss') AS
ReadTime, MIUwindow, SN, Noise, RSSI, ColRSSI, MIURSSI, Firmware, CFGDate, FreqCorr,
Active, MeterType, OriginCol, ColID, Ownage, SiteID, PremID, Neptune_prem.prem_group1,
Neptune_prem.prem_group2, ReadID
INTO analyzed
FROM Neptune_FN_Analysis INNER JOIN
Neptune_prem ON Neptune_FN_Analysis.PremID = Neptune_prem.premice_id
WHERE SiteID = 36801 and ReadDate BETWEEN #04/21/09# AND #04/27/09#
and OriginCol = 'US 29' and ColID = 1 and ColID <> 0 and Active = 'Y'