不知道如何选择具有最大负日期差异的行的ID

时间:2015-02-20 05:56:25

标签: sql ms-access ms-access-2007

我正在尝试从表中获取具有最大负日期差异(例如date - Now())的行。

像这样(伪代码):

SELECT ID, MAX( DateDiff("d", Now(), myDate) ) AS [test] FROM myTable
    WHERE test < 0;

结果将是这样的:

ID | test
 1 |  -15

我试图自己解决这个问题但是失败了。我甚至不知道如何在谷歌上搜索搜索问题,所以互联网无法帮助我。我被困住了。

注:

最大负数示例:介于-10和-125之间,结果应为-10。

编辑:

独自尝试,我能够接近:

SELECT MAX( DateDiff("d", myDate, Now()) as [test] from myTable
    WHERE DateDiff("d", myDate, Now() < 0;

它返回正确的日期差异,但是当我尝试添加ID时,它会返回所有行的日期差异。我无法获得单一价值。

2 个答案:

答案 0 :(得分:1)

使用ORDER BYTOP 1。 这样的事情。

SELECT TOP 1 ID, myDate, DateDiff(Day, now(), myDate) AS [test]
FROM myTable
WHERE DateDiff(Day, now(), myDate) < 0
ORDER BY DateDiff(Day, now(), myDate) DESC -- min differenz
-- ORDER BY DateDiff(Day, now(), myDate) ASC -- max differenz

答案 1 :(得分:1)

SELECT TOP 1
    ID,
    DateDiff('d', Now(), myDate) AS [test]
FROM myTable
WHERE Now() > myDate
ORDER BY 2 DESC;