如何使用动态创建的字段在DATE_SUB计算中使用?
我在下面有这个SQL:
SELECT *,
CASE
WHEN `currentDate` IS NULL
THEN
`lastDate`
ELSE
`currentDate`
END AS `useDate`,
CASE
WHEN `type` = 'weekly'
THEN DATE_SUB(`useDate`, INTERVAL 1 WEEK)
END AS `nextDate`
FROM `aTable`
这不起作用,因为错误'#1054 - '字段列表'中的未知列'useDate''
如果我使用Select *中的实际字段,查询工作正常,但不接受动态创建的字段。
在不必执行“大小写”查询的情况下,使用此方法的正确方法是什么?
答案 0 :(得分:0)
您是否尝试在CASE
内使用WHEN
子句?
SELECT *,
CASE
WHEN `currentDate` IS NULL
THEN `lastDate`
ELSE `currentDate`
END AS `useDate`,
CASE
WHEN `type` = 'weekly'
THEN DATE_SUB(
CASE
WHEN `currentDate` IS NULL
THEN `lastDate`
ELSE `currentDate`
END AS `useDate`
, INTERVAL 1 WEEK)
END AS `nextDate`
FROM `aTable`