【发布时间】:2018-02-02 02:32:28
【问题描述】:
我创建了一个脚本,该脚本创建了一个包含 3 列并插入 5 行的 volatile 表:
create multiset volatile table dr (
period int
, st_date date
, end_date date
)
primary index (period) on commit preserve rows;
insert into dr (period,st_date,end_date)
select *
from( select *
from (select '201712' period
, '2017-10-01' st_date
, '2017-12-31' end_date
)t1
union all
select *
from (select '201612' period
, '2016-10-01' st_date
, '2016-12-31' end_date
)t2
union all
select *
from (select '201512' period
, '2015-10-01' st_date
, '2015-12-31' end_date
)t3
union all
select *
from (select '201412' period
, '2014-10-01' st_date
, '2014-12-31' end_date
)t4
union all
select *
from (select '201312' period
, '2013-10-01' st_date
, '2013-12-31' end_date
)t5
)t
我将把这个表格加入到其他几个表格的日期范围内。
在这里,我手动为每个插入的行键入信息,这有点麻烦且效率低下。
是否有更自动化的方法来执行此操作,并且所有时间都在一个日期(例如 2017-12-31)结束?我可以自己计算出逻辑,但不确定如何构造插入语句以允许这种逻辑。
谢谢!
编辑 我希望能够在任何连续 3 个月期间自动执行此操作,即使跨年(例如 2017-11-01 到 2018-01-31,或 2017-12-01 到 2018-02-28),然后继续在该连续 3 个月期间返回 5 年。
【问题讨论】:
-
您总是想获得一个季度的月份还是连续三个月?
-
连续 3 个月。我总是在连续 3 个月内检查数据。挑战总是跨年,例如从 2017-11-01 到 2018-01-31,或 2017-12-01 到 2018-02-28