[英]SQL Query in Apex if date not exist return value from previous date
我需要通过比较2个表在Oracle Apex中生成交互式报告。 每个表都有列:日期,标签,数字。
表1:包含Column更改的历史记录:Number和写入日期列:Number已更改。
表2:还有列:数字和列:日期(列:显示列的不同值的日期:月份的不同日期的数字)。
在比较表1和表2之间的列“Tag_id”时生成报告,因此我们知道列中的哪个值:表1中的数字是指列:表2中的数字。(...其中table1.tag = table2。标签)。
表2包含列中的日期:每月中每天的数字,表1包含按列更改的日期:每1,2,3或更多天一次。
我希望报告显示列中的值:表1中的数字,并显示列中的值:表2中的数字,同时按表格比较表1和表2:日期。
问题是在表1中列中没有日期:日期等于列中的日期:表2中的日期,数据库不知道列的哪个值:生成的报告中要返回的数字。
我想要实现的目标:当列中没有日期匹配时:表1和表2之间的日期我想在Apex的Generated报告中返回列中的值:表2中的数字表示没有的日期match *和column的值:表1中的数字表示最近的前一个日期,仅使用SQL Query。
有趣的问题。 我不知道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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.