簡體   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