SELECT *
FROM (
SELECT *
FROM CV
WHERE EEFDATE < CURRENT_DATE
AND ARR = 'A'
) A
INNER JOIN B
ON A.POL = B.POL
AND A.CO = B.CO
AND B.STS = 'A'
AND B.CHEDATE = (
SELECT MAX(CHEDATE)
FROM B B1
WHERE B1.POL = B.POL
AND B1.CO = B.CO
AND B1.STS = 'A'
AND B1.CHEDATE <= current_date
)
AND B.CRDATE = (
SELECT MAX(CRDATE)
FROM B B2
WHERE B2.POL = B.POL
AND B2.CO = B.CO
AND B2.STS = 'A'
AND B2.CHEDATE = B.CHEDATE
)
LEFT JOIN C
ON C.POL = B.POL
AND C.NUMCO = B.NUMCO
AND C.TU = 'U'
AND C.STS = 'A'
AND C.CHEDATE = (
SELECT MAX(CHEDATE)
FROM C C1
WHERE C1.POL = C.POL
AND C1.NUMCO = C.NUMCO
AND C1.STS = 'A'
AND C1.CHEDATE <= A.CHEDATE
)
AND C.CRDATE = (
SELECT MAX(CRDATE)
FROM C C2
WHERE C2.POL = C.POL
AND C2.NUMCO = C.NUMCO
AND C1.STS = 'A'
AND C2.CHEDATE = C.CHEDATE
AND C2.CRDATE <= A.EFFDATE
)
系统不支持子查询里面套聚合函数这种写法,并且第三四个子查询里面还有涉及 A 表的字段对比,但是 c 和 a 表没有直接关联
有没有人可以给个改写建议?