参数表的范围内,将由用户来维护:使开始和结束期间
PERIOD_ID START_PERIOD END_PERIOD
BU201701 201701 201712
最终的结果,我想剧本后看到的内容:
KEY PERIOD PLAN_PERIOD
BU201701 201701 201701
BU201701 201702 201701
BU201701 201703 201701
BU201701 201704 201701
BU201701 201705 201701
BU201701 201706 201701
BU201701 201707 201701
BU201701 201708 201701
BU201701 201709 201701
BU201701 201710 201701
BU201701 201711 201701
BU201701 201712 201701
BU201701 201701 201702
BU201701 201702 201702
BU201701 201703 201702
BU201701 201704 201702
BU201701 201705 201702
BU201701 201706 201702
BU201701 201707 201702
BU201701 201708 201702
BU201701 201709 201702
BU201701 201710 201702
BU201701 201711 201702
BU201701 201712 201702
BU201701 201701 201703
BU201701 201702 201703
BU201701 201703 201703
BU201701 201704 201703
BU201701 201705 201703
BU201701 201706 201703
BU201701 201707 201703
BU201701 201708 201703
BU201701 201709 201703
BU201701 201710 201703
BU201701 201711 201703
BU201701 201712 201703
BU201701 201701 201704
BU201701 201702 201704
BU201701 201703 201704
BU201701 201704 201704
BU201701 201705 201704
BU201701 201706 201704
BU201701 201707 201704
BU201701 201708 201704
BU201701 201709 201704
BU201701 201710 201704
BU201701 201711 201704
BU201701 201712 201704
BU201701 201701 201705
BU201701 201702 201705
BU201701 201703 201705
BU201701 201704 201705
BU201701 201705 201705
BU201701 201706 201705
BU201701 201707 201705
BU201701 201708 201705
BU201701 201709 201705
BU201701 201710 201705
BU201701 201711 201705
BU201701 201712 201705
..........
BU201701 201701 201712
BU201701 201702 201712
BU201701 201703 201712
BU201701 201704 201712
BU201701 201705 201712
BU201701 201706 201712
BU201701 201707 201712
BU201701 201708 201712
BU201701 201709 201712
BU201701 201710 201712
BU201701 201711 201712
BU201701 201712 201712
代码我曾尝试没有成功:
with data as (
SELECT
to_char(to_date(FROM_PERIOD,'YYYYMM'),'YYYYMM') as FROM_PERIOD,
to_char(to_date(TO_PERIOD,'YYYYMM'),'YYYYMM') as TO_PERIOD,
to_char(to_date(FROM_PERIOD,'YYYYMM'),'YYYYMM') as DT
FROM SOR_MAP_PLAN_PERIOD
UNION ALL
SELECT
to_char(to_date(FROM_PERIOD,'YYYYMM'),'YYYYMM') as FROM_PERIOD,
to_char(to_date(TO_PERIOD,'YYYYMM'),'YYYYMM') as TO_PERIOD,
cast(to_char(to_date(FROM_PERIOD,'YYYYMM'),'YYYYMM')+1 as varchar(20)) as DT
FROM SOR_MAP_PLAN_PERIOD
WHERE cast(to_char(to_date(FROM_PERIOD,'YYYYMM'),'YYYYMM')+1 as varchar(20)) <= to_char(to_date(TO_PERIOD,'YYYYMM'),'YYYYMM')
)
select
FROM_PERIOD,
TO_PERIOD,
DT
还有一个问题:如果在参数表中添加更多的period_id。如何修改交叉连接以重复记录。例如PERIOD_ID START_PERIOD END_PERIOD BU201701 201701 201712 201801 STR201801 201812 –
我建议你问,作为一个单独的问题提供链接到这个问题,以帮助了解背景。 –