我只是尝试在 OracleFROM
中的语句的子句中执行关联子查询SELECT
,但我收到一个错误,表明我无法执行关联(大意Obs.pID
是无法识别)。
这应该工作吗?
FROM ml.Person Person
JOIN ml.Obs ON Person.pID = Obs.pId
JOIN (SELECT ObsMax2.pId, ObsMax2.hdId
, MAX(ObsMax2.obsDate) as maxDate
FROM ml.Obs ObsMax2
WHERE ObsMax2.pId = Obs.pId
AND ObsMax2.obsDate < {?EndDate}
GROUP BY ObsMax2.pId, ObsMax2.hdId) ObsMax
ON Obs.pId = ObsMax.pId
AND Obs.hdId = ObsMax.hdId
AND Obs.obsDate = ObsMax.maxDate
我的解决方法似乎是使它成为一个不相关的子查询,并向子查询添加条件,以防止它完全运行 amuck、amuck、amu--oof抱歉。
不过,如果可能的话,我宁愿弄清楚如何正确关联它 - 像该子查询一样工作的视图需要永远构建。