2013-07-06 107 views
1

我有一個表檢查,我試圖選擇我想要的每個日期範圍的最大日期。這是在MS Access 2007查詢和我發現的大多數答案是T SQL格式。選擇最大日期範圍

例如日期範圍:間#1/1/2012年#和#3/30/2012年#

Date  PlateNo  TickeStatus 
01-15-12  A  Open 
01-23-12  c  Open 
01-17-12  A  Close 
02-23-12  c  Open 
02-15-12  A  Open 
03-23-12  c  Open 
03-15-12  A  Close 
03-28-12  c  Close 
04-15-12  A  Open 
04-23-12  c  Close 

在我設置的時間範圍。結果我想是這樣的:

Date  PlateNo  TickeStatus 
03-15-12  A  Close 
03-28-12  c  Close 

回答

1

該查詢會給你每個PlateNo最大Date你的目標日期範圍內。

SELECT i.PlateNo, Max(i.Date) AS MaxOfDate 
FROM inspections AS i 
WHERE i.Date BETWEEN #2012-1-1# AND #2012-3-30# 
GROUP BY i.PlateNo; 

得到相應的TickeStatus值,用它作爲你加入到檢查表的子查詢。

SELECT i2.Date, i2.PlateNo, i2.TickeStatus 
FROM 
    inspections AS i2 
    INNER JOIN 
     (
      SELECT i.PlateNo, Max(i.Date) AS MaxOfDate 
      FROM inspections AS i 
      WHERE i.Date BETWEEN #2012-1-1# AND #2012-3-30# 
      GROUP BY i.PlateNo 
     ) AS sub 
    ON 
      (i2.PlateNo = sub.PlateNo) 
     AND (i2.Date = sub.MaxOfDate); 
+0

關於第二個SQL。您需要每次更改日期範圍---- WHERE i.Date BETWEEN#2012-1-1#和#2012-3-30#------以獲得結果,我試着將日期範圍在訪問查詢生成器中作爲條件但結果不同。我希望日期範圍可以作爲其中一個標準,比如我的其他查詢,在這個查詢中輸入了開始日期和結束日期。謝謝你的答覆。欣賞它 – user2388811