SQL:为缺少的月份插入行

SQL:为缺少的月份插入行,sql,oracle,plsql,oracle11g,Sql,Oracle,Plsql,Oracle11g,我有一张桌子如下: |----------|----------| | DT | FLAG | |----------|----------| | 2015-MAY | E | | 2015-JUN | H | | 2015-OCT | E | | 2016-FEB | E | |----------|----------| |----------|----------| | DT | FLAG |

我有一张桌子如下:

|----------|----------|
|  DT      |  FLAG    |
|----------|----------|
| 2015-MAY |  E       |
| 2015-JUN |  H       |
| 2015-OCT |  E       |
| 2016-FEB |  E       |
|----------|----------|
|----------|----------|
|  DT      |  FLAG    |
|----------|----------|
| 2015-MAY |  E       |
| 2015-JUN |  H       |
| 2015-JUL |  V       |
| 2015-AUG |  V       |
| 2015-SEP |  V       |
| 2015-OCT |  E       |
| 2015-NOV |  V       |
| 2015-DEC |  V       |
| 2016-JAN |  V       |
| 2016-FEB |  E       |
|----------|----------|
我想转换如下:

|----------|----------|
|  DT      |  FLAG    |
|----------|----------|
| 2015-MAY |  E       |
| 2015-JUN |  H       |
| 2015-OCT |  E       |
| 2016-FEB |  E       |
|----------|----------|
|----------|----------|
|  DT      |  FLAG    |
|----------|----------|
| 2015-MAY |  E       |
| 2015-JUN |  H       |
| 2015-JUL |  V       |
| 2015-AUG |  V       |
| 2015-SEP |  V       |
| 2015-OCT |  E       |
| 2015-NOV |  V       |
| 2015-DEC |  V       |
| 2016-JAN |  V       |
| 2016-FEB |  E       |
|----------|----------|
缺少的月份用
标志插入
V

有没有一个简单的方法


谢谢

感谢jspcal的链接激发了这个答案

让它工作

CREATE OR REPLACE PROCEDURE FILL_DATE_GAP AS 
BEGIN
    INSERT INTO DUMMY_DATES 
    SELECT to_date(add_months(date '2015-01-01', level - 1), 'yyyy-mm-dd') mth, 
           'V'
    FROM   DUAL 
    connect by level <= 14
    MINUS
    SELECT DT, 
           FLAG
    FROM   DUMMY_DATES;
END FILL_DATE_GAP;
根据需要创建或替换过程填充\u日期\u间隙
开始
插入虚拟日期
选择截止日期(添加月数(日期“2015-01-01”,级别-1),“yyyy-mm-dd”)mth,
“V”
来自双重

按级别连接您可以运行一个脚本,该脚本可以查询几个月不在那里的情况,然后以编程方式插入。:)@罗尔塔尔:)我们在一起的时候笑起来真好pressured@jspcal听起来不错,谢谢!