小编Tùn*_*ùng的帖子

如何从开始到今天每 30 天生成一个列表周期

我为一家公司工作,该公司要求我从项目开始到现在每 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)

sql oracle plsql

4
推荐指数
1
解决办法
104
查看次数

标签 统计

oracle ×1

plsql ×1

sql ×1