Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle SQL क्वेरी - दो तिथियों के बीच रिकॉर्ड उत्पन्न करें

ऐसा करने का एक तरीका यहां दिया गया है। यह मानता है कि तिथियां सभी शुद्ध तिथियां हैं (दिन घटक का कोई समय नहीं - वास्तव में दिन का समय हर जगह 00:00:00 है)। यह भी मानता है कि आप चाहते हैं कि आउटपुट में इनपुट में पहली और आखिरी तारीख के बीच की सभी तारीखें शामिल हों।

पहली और अंतिम तिथियों की गणना अंतरतम क्वेरी में की जाती है। फिर उनके बीच की सभी तिथियां एक पदानुक्रमित (कनेक्ट बाय) क्वेरी के साथ बनाई जाती हैं, और परिणाम मूल डेटा में बाएं-जुड़े हो जाते हैं। तब विश्लेषणात्मक last_value() . का उपयोग करके आउटपुट प्राप्त किया जाता है ignore nulls . के साथ कार्य करें विकल्प।

with
     inputs ( dt, value ) as (
       select to_date('8/1/2017', 'mm/dd/yyyy'), 'x' from dual union all
       select to_date('8/5/2017', 'mm/dd/yyyy'), 'b' from dual union all
       select to_date('8/7/2017', 'mm/dd/yyyy'), 'a' from dual
     )
-- End of simulated input data (for testing purposes only, not part of the solution).
-- Use your actual table and column names in the SQL query that begins below this line.
select dt, last_value(value ignore nulls) over (order by dt) as value
from   ( select f.dt, i.value
         from   ( select min_dt + level - 1 as dt
                  from   ( select max(dt) as max_dt, min(dt) as min_dt
                           from   inputs
                         )
                  connect by level <= max_dt - min_dt + 1
                ) f
                left outer join inputs i on f.dt = i.dt
       )
;

DT          VALUE
----------  -----
2017-08-01  x
2017-08-02  x
2017-08-03  x
2017-08-04  x
2017-08-05  b
2017-08-06  b
2017-08-07  a



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. भौतिक दृश्य - Oracle / डेटा अपडेट नहीं हो रहा है

  2. Oracle .NET त्रुटि - गलत संख्या या तर्कों का प्रकार

  3. win7 x64 पर php (xampp) के साथ oracle क्लाइंट 11.2 का उपयोग कैसे करें?

  4. Oracle से पायथन 2.7 कनेक्शन:लूज़िंग (पोलिश) वर्ण

  5. ओआरए-31011:एक्सएमएल पार्सिंग विफल - अमान्य वर्ण (ओरेकल एसक्यूएल)