在表帐户和accounts_prop上有一对多的关系我尝试获取具有最后日期(bis)的帐户的最后一个属性,
使用以下查询返回记录但是当日期等于0000-00-00
时出现问题,则前日期计算为最大日期
SELECT c.account_id, p.bis
FROM accounts as c INNER JOIN
(
SELECT account_id,
MAX(bis) MaxDate
FROM accounts_prop
where accounts_prop.bis != 0
GROUP BY account_id
) MaxDates ON c.account_id = MaxDates.account_id INNER JOIN
accounts_prop p ON MaxDates.account_id = p.account_id
AND MaxDates.MaxDate = p.bis
如何排除最后一个日期与0000-00-00
答案 0 :(得分:0)
我假设你有一个DATE数据类型
来自MySQL Doc B.5.4.2 Problems Using DATE Columns
特殊的“零”日期' 0000-00-00'可以存储和检索为 ' 0000-00-00&#39 ;.当一个' 0000-00-00' date通过Connector / ODBC使用, 它会自动转换为NULL,因为ODBC无法处理它 日期
我建议您为子查询尝试以下操作之一:
SELECT account_id,
MAX(bis) MaxDate
FROM accounts_prop
where accounts_prop.bis > '0000-00-00'
GROUP BY account_id
或
SELECT account_id,
MAX(bis) MaxDate
FROM accounts_prop
where accounts_prop.bis IS NOT NULL
GROUP BY account_id