从上个月开始的季度计数的自定义 SQL



我需要创建一个自定义季度计算器,无论我们处于哪个月,无论我们处于哪个年份,并且总是从上个月开始,然后倒计时以获得季度。上一年的武士编号为5,6等

因此,目标是将季度分组移后一个月。

假设我们在 12 月 11 日运行查询,结果应该是:

年 第一季度 QTR_ALT 2017    1   1      12 2017    2   1      12 2017    3   1      11 2017    4   2      11 2017    5   2      11 2017    6   2      10 2017    7   3      10 2017    8   3      10 2017    9   3      9 2017    10  4      9 2017    11  4      9 2017    12  4      8 2018    1   1      8 2018    2   1      8 2018    3   1      7 2018    4   2      7 2018    5   2      7 2018    6   2      6 2018    7   3      6 2018    8   3      6 2018    9   3      5 2018    10  4      5 2018    11  4      5 2018    12  4      1 2019    1   1      1 2019    2   1      1 2019    3   1      2 2019    4   2      2 2019    5   2      2 2019    6   2      3 2019    7   3      3 2019    8   3      3 2019    9   3      4 2019    10  4      4 2019    11  4      4 2019 12 4 跳过

起点是消除current_date因此数据在上个月的最后一天结束

选择不同  年  锰,  PT3 从表 其中数据介于  (选择DATE_TRUNC(年,ADD_MONTHS(CURRENT_DATE,-24(((和  (选择DATE_TRUNC(月,CURRENT_DATE(-1( 按年份、百万年、季度排序

下面为您提供所需的所有日期,以及额外的列。

select to_char(add_months(a.dt, -b.y), 'YYYY') as year,
to_char(add_months(a.dt, -b.y), 'MM') as month,
ceil(to_number(to_char(add_months(a.dt, -b.y), 'MM')) / 3) as qtr,
ceil(b.y/3) as alt_qtr
from
(select trunc(sysdate, 'MONTH') as dt from dual) a,
(select rownum as y from dual connect by level <= 24) b;

最新更新