具體的請參考:
測試表test:
在下面查詢中的資料時候,會發現日期並不完整,希望日期可以自動補全,並且沒有資料的字段自動以上一行的資料補全。
sql> select * from test;event_date build_name
---------- ---------------------------
2016-06-25 b1
2016-10-20 b1
2016-11-27 b1
2017-01-15 b1
2017-02-03 b1
2017-02-07 b1
2017-02-09 b1
2016-07-05 b5
2016-07-17 b5
2016-07-20 b5
2016-08-22 b5
event_date build_name
---------- -------------------------
2016-10-11 b5
2016-11-03 b5
2016-12-19 b5
2017-03-08 b5
15 rows selected.
在上面查詢中的資料時候,會發現日期並不完整,希望日期可以自動補全,並且沒有資料的字段自動以上一行的資料補全,也就是想實現如下的效果
dates build_name_new---------- ----------------------
2016-06-25 b1
2016-06-26 b1
2016-06-27 b1
2016-06-28 b1
2016-06-29 b1
2016-06-30 b1
2016-07-01 b1
2016-07-02 b1
2016-07-03 b1
2016-07-04 b1
2016-07-05 b5
dates build_name_new
---------- ------------------------
2016-07-06 b5
2016-07-07 b5
2016-07-08 b5
2016-07-09 b5
2016-07-10 b5
2016-07-11 b5
2016-07-12 b5
2016-07-13 b5
2016-07-14 b5
2016-07-15 b5
2016-07-16 b5
......
2017-02-22 b1
2017-02-23 b1
2017-02-24 b1
2017-02-25 b1
2017-02-26 b1
2017-02-27 b1
2017-02-28 b1
2017-03-01 b1
2017-03-02 b1
2017-03-03 b1
2017-03-04 b1
dates build_name_new
---------- -------------------------
2017-03-05 b1
2017-03-06 b1
2017-03-07 b1
2017-03-08 b5
257 rows selected.
下面給出最終的實現語句:
/* formatted on 2018/4/24 星期二 上午 11:30:07 (qp5 v5.313) */with
aaas
( select bb.startdate + level - 1 dates
from (select max (event_date) enddate, min (event_date) startdate
from test) bb
connect by level <= floor (bb.enddate - bb.startdate) + 1),
bbas
( select distinct a.dates, t.build_name, t.event_date
from aa a left join test t on t.event_date = a.dates
order by a.dates)
select dates,
build_name,
event_date,
nvl (build_name, lag (build_name ignore nulls) over (order by dates))
build_name_new
from bb;
Oracle自動補全日期,空資料為0
1.問題描述 在資料庫查詢中計算年月週日的資料時候,會發現日期並不完整,希望日期可以自動補全,並且沒有資料的字段補0 最開始的資料展現為如下圖 select nvl sum synnum 0 value to char syntime,yyyy mm dd lable from synlog whe...
Excel補全日期(日期按順序補全)
1 給出的資料 2 想補全缺失的日期,比如2015 3 1,2015 3 2,1 在d列輸入完整的日期,如下圖所示 2 在e2處寫函式 if iserr vlookup d2,b c,2,0 vlookup d2,b c,2,回車,得到結果 然後下拉列表,得到全部完整日期。如圖所示 解釋 if is...
mysql查詢日期補全(連續)方法
select od.date,od.ordercount from select date format order time,y m d date,count ordercount from order where order time 開始時間 and order time 結束時間 group...