3

MicrosoftAccessでanalyzedというテーブルを使用しています。多くのフィールドがありますが、この場合のフィルタリングに使用されている3つのフィールドはanalyzed.readings_miu_id、analyzed.ReadDate、analyzed.ReadTimeです。readings_miu_idがグループ化され、ReadDateでソートされている「分析済み」テーブルからレコードをプルする必要がありますが、ReadTimeで最も高い値になる可能性があるその日付の最後のエントリのみが表示されます。クエリを作成しました:

SELECT readings_miu_id, Reading, ReadDate, ReadTime, 
    MIUwindow, SN, Noise, RSSI, OriginCol, ColID, Ownage
FROM analyzed
WHERE analyzed.ReadDate Between #4/21/2009# and #4/29/2009#  
AND analyzed.ReadTime= ( 
    SELECT TOP 1 analyzed.ReadTime 
    FROM analyzed 
    WHERE analyzed.readings_miu_id = *????*** 
    ORDER BY analyzed.ReadTime DESC);

*????***はここに何を置くべきかわからないことを示すために使用されています

有効なreadings_miu_idを入力すると、そのreadings_miu_idの時間が最も長いレコードが1つ取得されます。

上記のようなサブクエリを使用して、ReadDateごとにreadings_miu_idごとに最後のReadTimeのみをプルするにはどうすればよいですか?

readings_miu_idはテーブルIDではなく、アイテム番号または名前に似ています

4

2 に答える 2

4
 SELECT readings_miu_id
    , Reading , ReadDate , ReadTime
    , MIUwindow, SN, Noise, RSSI
    , OriginCol, ColID, Ownage 
 FROM analyzed AS A
    WHERE analyzed.ReadDate Between #4/21/2009# and #4/29/2009# 
       AND analyzed.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);

メイン テーブルを A としてエイリアスし、サブクエリで参照しました。サブクエリで ReadDate でフィルタリングする必要があるかどうかはわかりません。

于 2009-05-19T15:35:20.673 に答える
0

これで近づきます。「readings_miu_id がグループ化されている場所」というステートメントは、私を混乱させます。GroupBy が必要なのか、そのフィールドで並べ替えが必要なのかわかりません。このクエリは、分析されたテーブルから同じ日付を持つが、その特定の日付の「最大:」時間を持つレコードを提供します。それはあなたが望んでいたもののように聞こえます。

SELECT readings_miu_id, Reading, ReadDate, ReadTime, MIUwindow, SN, Noise, RSSI, OriginCol, ColID, Ownage 
FROM analyzed ,
(
  Select ReadDate as matchDate, Max(ReadTime) as matchTime
  FROM analyzed 
  Where analyzed.ReadDate Between #4/21/2009# and #4/29/2009# 
  Group by ReadDate
) dateAndTime
WHERE analyzed.ReadDate Between #4/21/2009# and #4/29/2009# AND ReadDate = dateAndTime.matchDate AND readTime = dateAndTime.matchTime  
Order By readDate
于 2009-05-19T15:31:13.550 に答える