繁体   English   中英

在指定日期之间将缺失记录添加到表 Oracle

[英]Adding missing records to table Oracle between specified dates

我有如下表:

在此处输入图像描述

但我想要的是output下面:

在此处输入图像描述

从 min.date 到 max 的每一天都应该存在每个名称记录。 日期。 如果记录不存在于原始表中,则其值应在特定日期更新为 0。

我无法弄清楚这个查询。 请。 任何人都可以建议我为此编写查询。

提前致谢..!

如果表中有所有日期,则可以使用原始表中的数据。 使用cross join生成行,然后使用left join引入值:

select n.name, d.date, coalesce(t.value, 0) as value
from (select distinct name from t) n cross join
     (select distinct date from t) d left join
     t
     on t.name = n.name and t.date = d.date;

如果某些日期完全从表中丢失,那么您需要一个日历表或某种 CTE 来生成所有日期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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