【发布时间】:2015-02-20 05:56:24
【问题描述】:
我正在尝试从表中获取具有最大负日期差异的行(例如 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 时,它返回所有行的日期差异。我无法获得单个值。
【问题讨论】:
-
@HansUp: 例如给定-10和-15,你要返回哪个? -10
-
好的,您想为每个不同的
ID计算这样的Max值……对吗?如果是这样,您需要一个GROUP BY查询。 -
@HansUp:不,我只需要具有最大负日期差异的行的 ID。我对其他行不感兴趣,只对价值最小的行感兴趣。
-
那么
ID是myTable的主键吗?
标签: sql ms-access ms-access-2007