我需要在访问数据库中使用SQL获取今年的总里程数。 目前我正在尝试以下查询,但它不起作用:
SELECT
SUM(Mileage)
FROM
[Mileage-Expenses]
WHERE
YEAR(DatePurchased) = YEAR(CURRENT_TIMESTAMP)
任何想法如何解决这个问题?
答案 0 :(得分:3)
基于WHERE
的{{1}}子句要求db引擎评估表中每行的表达式。通过在YEAR(DatePurchased)
上添加索引(如果您还没有),然后使用DatePurchased
子句允许db引擎仅检索当前年份的行,您将获得更好的性能计算WHERE
。
SUM(Mileage)
答案 1 :(得分:1)
我很长时间没有使用MS Access,但据我记得它不支持CURRENT_TIMESTAMP
,您需要使用DATE()
或{{1}而不是:
NOW()