我的条件是 (f.fit_chk_dt, f.fit_valid_to)>366
以及 (o.regn_dt,f.fit_chk_dt)>731
然后应该获取fitness和owner表中所有列的所有记录。
这是我的选择:
SELECT *
FROM vt_fitness f
LEFT JOIN vt_owner o ON o.regn_no=f.regn_no AND o.off_cd=f.off_cd AND
o.state_cd=f.state_cd
WHERE f.state_cd='X'
AND extract(year from age(f.fit_chk_dt, f.fit_valid_to))>366
AND extract(year from age(o.regn_dt, f.fit_chk_dt))>731
GROUP BY f.regn_no, o.regn_dt, f.fit_chk_dt, f.fit_valid_to
1条答案
按热度按时间dzhpxtsq1#
说“这没用”是最没用的说法。要解决这个问题,你需要提供两条信息,确切地说,你得到了什么,你期望什么;为什么你认为你错了也会有用。
尽管如此,我猜这个错误源于您对age函数返回值的最初误解。age返回一个间隔,包括年、月、日。。。然后从间隔中提取年份,希望日期之间的差值分别大于366年和731年(旁注:这就是为什么@a\u horse\u没有指定名称“interval'366 years'”)存在于您的问题。你的数据不超过731年。
我怀疑分别是1年和2年(366天~=1年,731天~=2年(366+365))。也许: