我正在尝试对日期范围运行查询,该查询还有另一个表 SECM,上面有历史记录。因此,当我针对 01/02/2019 运行查询时,应从运行查询的日期或任何其他可从 SECM 获得数据但小于运行查询日期的数据中检索 SECM 数据。
SECM 数据
我正在使用的查询如下。
SELECT
SECM.EFF_DATE,
POS.EFF_DATE,
E.ACC_NO,E.ACC_NAME AS ACCOUNT_NAME,POS.ACC_ID AS ACC_ID,
SECM.CURRENCY,SECM.DESCRIPTION,
FROM
ACC E
INNER JOIN HOLDING POS ON POS.ACC_ID = E.ACC_ID
INNER JOIN POS_DETAIL POSDET ON POSDET.POS_ID = POS.POS_ID
LEFT OUTER JOIN (SELECT ALIAS,DESCRIPTION,CURRENCY,EFF_DATE
FROM SMFH SM1
WHERE INSTANCE=4
AND EFF_DATE=(SELECT MAX(EFF_DATE)
FROM SMFH SM2
WHERE SM2.INSTANCE=4
AND SM1.ALIAS=SM2.ALIAS
AND EFF_DATE<='02-Jan-2019'
)
) SECM ON SECM.ALIAS = POSDET.ALIAS
AND SECM.EFF_DATE <= POS.EFF_DATE
WHERE POS.INSTANCE = 14
AND TRUNC(POS.EFF_DATE) BETWEEN '30-Dec-2018' AND '02-Jan-2019'
当我运行上述查询时,我总是获取 1 月 2 日的数据。下面是电流输出。
预期产出


