參數表的範圍內,將由用戶來維護:使開始和結束期間
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 –
我建議你問,作爲一個單獨的問題提供鏈接到這個問題,以幫助瞭解背景。 –