我为一家公司工作,该公司要求我从项目开始到现在每 30 天生成一个周期列表。示例:项目“A”的开始日期是 01/DEC/2016,项目“B”的开始日期是 05/Feb/2016。今天是 07/FEB/2017。
输出应该是这样的:
**ITEM | START | END | PERIOD_NO**
----------------------------------------------
A |01/12/2016 |30/12/2016 |0
A |31/12/2016 |29/01/2017 |1
A |30/01/2017 |28/02/2017 |2
B |05/07/2016 |03/08/2016 |0
B |04/08/2016 |02/09/2016 |1
B |03/09/2016 |02/10/2016 |2
B |03/10/2016 |01/11/2016 |3
B |02/11/2016 |01/12/2016 |4
B |02/12/2016 |31/12/2016 |5
B |01/01/2017 |30/01/2017 |6
B |31/01/2017 |01/03/2017 |7
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
select
ITEM
, trunc(Start_Date+(level*30)-30) AS BEGIN
, CASE WHEN (Level-1) = 0 THEN trunc(Start_Date+(level*30) - 1) ELSE trunc(Start_Date+(level*30) -1) END …
Run Code Online (Sandbox Code Playgroud)