【发布时间】:2009-03-27 13:46:00
【问题描述】:
这是我使用 datediff 工作的 SQL 语句:
SELECT SUM(b134_nettpay) AS Total, b134_rmcid, b134_recdate
FROM B134HREC
WHERE datediff (dd, '2006-05-05', getdate()) > 90
GROUP BY b134_rmcid, b134_recdate
ORDER BY b134_recdate DESC, b134_rmcid
我需要像这样用 MAX(b134_recdate) 替换硬编码日期“2006-05-05”:
SELECT SUM(b134_nettpay) AS Total, b134_rmcid, b134_recdate
FROM B134HREC
where datediff (dd, MAX(b134_recdate), getdate()) > 90
GROUP BY b134_rmcid, b134_recdate
ORDER BY b134_recdate DESC, b134_rmcid
但我收到此错误消息:
聚合可能不会出现在 WHERE 子句中,除非它出现在 HAVING 子句或选择列表中包含的子查询中,并且被聚合的列是外部引用。
知道如何修复我的 SQL 语句吗?
【问题讨论】:
标签: sql mysql sql-server datediff