我传球有问题 MAX(t.to_days) as max_days
至 DATE_ADD(t.date, INTERVAL max_days DAY)
.
查询:
select t.*, MAX(t.to_days) as max_days
from transactions t
where CURRENT_DATE > DATE_ADD(t.date, INTERVAL max_days DAY)
返回错误:“where子句”中的未知列“max\u days”。
我也试过:
select t.*, @num:=CAST(MAX(t.to_days) AS UNSIGNED)
from transactions t
where CURRENT_DATE > DATE_ADD(t.date, INTERVAL @num DAY)
但是 DATE_ADD
返回 null
.
3条答案
按热度按时间ogq8wdun1#
看起来可以使用子查询来获取
MAX()
在你的生活中珍惜和利用它DATE_ADD()
表情。i2loujxw2#
我强烈要求:
为什么?此版本应该能够利用上的索引
transactions(to_day)
.f4t66c6m3#
没有任何样本数据和预期结果,但我猜您可以尝试使用
HAVING
而不是WHERE
,因为MAX
是聚合函数,不能使用别名。这是我的模拟小提琴样品