繁体   English   中英

如果日期不存在,则Apex中的SQL查询返回上一个日期的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM