1

我有一个表检查,我正在尝试选择我想要的每个日期范围的最大日期。这是在 MS Access 2007 查询中,我发现的大多数答案都是 T SQL 格式。

例如日期范围:#1/1/2012# AND #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
4

1 回答 1

1

此查询将为您提供目标日期范围内Date每个的最大值。PlateNo

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);
于 2013-07-06T14:09:37.937 回答