2009-05-19 45 views
3

我正在使用Microsoft Access中分析的表。它有很多字段,但是在這種情況下用於過濾的三個字段分析.reads_miu_id,analyze.ReadDate,analyze.ReadTime。我需要從「分析」表中提取記錄,其中,將readings_miu_id分組在一起,然後按ReadDate進行排序,但只顯示該日期的最後一個條目,這可能是ReadTime中最高值的時間。我創建了一個查詢:MS Access中的子查詢:每個日期只選擇一個「person」記錄

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的最高時間。

如何使用像上面那樣的子查詢來爲每個ReadDate只讀取每個readings_miu_id的最後ReadTime?

readings_miu_id不表ID,它更類似於項目編號或名稱

+0

那麼有人可以告訴我爲什麼我被低估?我的問題存在問題,還是有人試圖獲得「批評者」徽章? – Bryan 2009-06-18 15:19:24

回答

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,只是refered給它的子查詢。不確定是否需要在子查詢中通過ReadDate進行篩選。

0

這將讓你關閉。聲明「where 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 
+0

我認爲前1應該照顧最新的閱讀時間。 – JeffO 2009-05-19 15:36:58

+0

max()這裏每個ReadDate組會得到一行。 – Andomar 2009-05-19 15:41:50