我需要通过比较2个表在Oracle Apex中生成交互式报告。每个表都有列:日期,标签,数字。
表1:包含Column更改的历史记录:Number和写入日期列:Number已更改。
表2:还有列:数字和列:日期(列:显示列的不同值的日期:月份的不同日期的数字)。
在比较列时生成报告" Tag_id"表1和表2之间 所以我们知道列中的哪个值:表1中的数字是指列:表2中的数字。(... where table1.tag = table2.tag)。
表2包含列中的日期:每月的每一天的数字, 表1包含按列更改的日期:每1,2,3天或更多天一次。
我希望报告显示列中的值:表1中的数字,并显示列中的值:表2中的数字,同时按表格对表1和表2进行比较:日期。
问题是在表1中列中没有日期:日期等于列中的日期:表2中的日期,数据库不知道列的哪个值:生成的报告中要返回的数字。
我想要实现的目标: 列中没有日期匹配:表1和表2之间的日期我想在Apex的Generated报告中返回列中的值:表2中的数字为 没有匹配的日期*和列的值:表1中的数字表示最近的前一个日期,仅使用SQL查询。
答案 0 :(得分:0)
有趣的问题。我不了解Apex,但如果它是Oracle的MySQL,我会一路走来:
SELECT
t2.id,
t2.date,
CASE WHEN t1.date IS NULL
THEN (SELECT table1.number FROM table1 WHERE table1.data <= t2.data ORDER BY table1.data DESC LIMIT 1)
ELSE t1.number
END AS numberT1,
t2.number as numberT2
FROM table2 t2
LEFT JOIN table1 t1 ON t1.date = t2.date