如何在Oracle SQL中生成Payperiod

StackOne

这是我的代码:

`

with calendar as (
    
select rownum - 1 as dnum
    from dual
    connect by rownum < sysdate - to_date('1-jan-2010') + 1
)
select a.*, (case when a.pp ='1' then 'Pay Period 1' end) as PayPeriod from (
select to_date('1-jan-2020') + dnum as dat, (case when to_date('1-jan-2020') + dnum <= 
to_date('9-jan-20') then 1 else 0 end) as pp
from calendar) a;

`

这是我得到的输出

在此处输入图片说明

现在我想让它生成payperiod 2,payperiod 3,payperiod 4等

要获得Payperiod 2,公式是范围内的所有日期(2020年1月9日+ 14)

是否有较短的脚本使该代码在Oracle SQL中更简单,而不是手动创建?

所需输出:

在此处输入图片说明

MT0

如何选择薪资期限的逻辑尚不清楚;但是,如果您希望它从一年的第一天的星期五或之前开始,则:

WITH pay_period_start ( first_day ) AS (
  SELECT NEXT_DAY( TRUNC( SYSDATE, 'YY' ) - INTERVAL '7' DAY, 'FRIDAY' )
  FROM   DUAL
),
calendar ( day ) AS (
  SELECT TRUNC( SYSDATE, 'YY' ) + LEVEL - 1
  FROM   DUAL
  CONNECT BY LEVEL <= SYSDATE - TRUNC( SYSDATE, 'YY' ) + 1
)
SELECT day,
       CEIL( ( day - first_day + 1 ) / 14 ) AS pp
FROM   calendar
       CROSS JOIN pay_period_start

哪个输出:

DAY                 | PP
:------------------ | -:
2020-01-01 00:00:00 |  1
2020-01-02 00:00:00 |  1
2020-01-03 00:00:00 |  1
2020-01-04 00:00:00 |  1
2020-01-05 00:00:00 |  1
2020-01-06 00:00:00 |  1
2020-01-07 00:00:00 |  1
2020-01-08 00:00:00 |  1
2020-01-09 00:00:00 |  1
2020-01-10 00:00:00 |  2
2020-01-11 00:00:00 |  2
2020-01-12 00:00:00 |  2
2020-01-13 00:00:00 |  2
2020-01-14 00:00:00 |  2
2020-01-15 00:00:00 |  2
2020-01-16 00:00:00 |  2
2020-01-17 00:00:00 |  2
2020-01-18 00:00:00 |  2
2020-01-19 00:00:00 |  2
2020-01-20 00:00:00 |  2
2020-01-21 00:00:00 |  2
2020-01-22 00:00:00 |  2
2020-01-23 00:00:00 |  2
2020-01-24 00:00:00 |  3
2020-01-25 00:00:00 |  3
2020-01-26 00:00:00 |  3
2020-01-27 00:00:00 |  3
2020-01-28 00:00:00 |  3
2020-01-29 00:00:00 |  3
2020-01-30 00:00:00 |  3
2020-01-31 00:00:00 |  3
2020-02-01 00:00:00 |  3
2020-02-02 00:00:00 |  3
2020-02-03 00:00:00 |  3
2020-02-04 00:00:00 |  3
2020-02-05 00:00:00 |  3
2020-02-06 00:00:00 |  3
2020-02-07 00:00:00 |  4
2020-02-08 00:00:00 |  4
2020-02-09 00:00:00 |  4
2020-02-10 00:00:00 |  4
2020-02-11 00:00:00 |  4
2020-02-12 00:00:00 |  4
2020-02-13 00:00:00 |  4
2020-02-14 00:00:00 |  4
2020-02-15 00:00:00 |  4
2020-02-16 00:00:00 |  4
2020-02-17 00:00:00 |  4
2020-02-18 00:00:00 |  4
2020-02-19 00:00:00 |  4
2020-02-20 00:00:00 |  4
2020-02-21 00:00:00 |  5
2020-02-22 00:00:00 |  5
2020-02-23 00:00:00 |  5
2020-02-24 00:00:00 |  5
2020-02-25 00:00:00 |  5
2020-02-26 00:00:00 |  5
2020-02-27 00:00:00 |  5
2020-02-28 00:00:00 |  5
2020-02-29 00:00:00 |  5
2020-03-01 00:00:00 |  5
2020-03-02 00:00:00 |  5
2020-03-03 00:00:00 |  5
2020-03-04 00:00:00 |  5
2020-03-05 00:00:00 |  5
2020-03-06 00:00:00 |  6
2020-03-07 00:00:00 |  6
2020-03-08 00:00:00 |  6
2020-03-09 00:00:00 |  6
2020-03-10 00:00:00 |  6
2020-03-11 00:00:00 |  6
2020-03-12 00:00:00 |  6
2020-03-13 00:00:00 |  6
2020-03-14 00:00:00 |  6
2020-03-15 00:00:00 |  6
2020-03-16 00:00:00 |  6
2020-03-17 00:00:00 |  6
2020-03-18 00:00:00 |  6
2020-03-19 00:00:00 |  6
2020-03-20 00:00:00 |  7
2020-03-21 00:00:00 |  7
2020-03-22 00:00:00 |  7
2020-03-23 00:00:00 |  7
2020-03-24 00:00:00 |  7
2020-03-25 00:00:00 |  7
2020-03-26 00:00:00 |  7
2020-03-27 00:00:00 |  7
2020-03-28 00:00:00 |  7
2020-03-29 00:00:00 |  7
2020-03-30 00:00:00 |  7
2020-03-31 00:00:00 |  7
2020-04-01 00:00:00 |  7
2020-04-02 00:00:00 |  7
2020-04-03 00:00:00 |  8
2020-04-04 00:00:00 |  8
2020-04-05 00:00:00 |  8
2020-04-06 00:00:00 |  8
2020-04-07 00:00:00 |  8
2020-04-08 00:00:00 |  8
2020-04-09 00:00:00 |  8
2020-04-10 00:00:00 |  8
2020-04-11 00:00:00 |  8
2020-04-12 00:00:00 |  8
2020-04-13 00:00:00 |  8
2020-04-14 00:00:00 |  8
2020-04-15 00:00:00 |  8
2020-04-16 00:00:00 |  8
2020-04-17 00:00:00 |  9
2020-04-18 00:00:00 |  9
2020-04-19 00:00:00 |  9
2020-04-20 00:00:00 |  9
2020-04-21 00:00:00 |  9
2020-04-22 00:00:00 |  9
2020-04-23 00:00:00 |  9
2020-04-24 00:00:00 |  9
2020-04-25 00:00:00 |  9
2020-04-26 00:00:00 |  9
2020-04-27 00:00:00 |  9
2020-04-28 00:00:00 |  9
2020-04-29 00:00:00 |  9
2020-04-30 00:00:00 |  9
2020-05-01 00:00:00 | 10
2020-05-02 00:00:00 | 10
2020-05-03 00:00:00 | 10
2020-05-04 00:00:00 | 10
2020-05-05 00:00:00 | 10
2020-05-06 00:00:00 | 10
2020-05-07 00:00:00 | 10
2020-05-08 00:00:00 | 10
2020-05-09 00:00:00 | 10
2020-05-10 00:00:00 | 10
2020-05-11 00:00:00 | 10
2020-05-12 00:00:00 | 10
2020-05-13 00:00:00 | 10
2020-05-14 00:00:00 | 10
2020-05-15 00:00:00 | 11
2020-05-16 00:00:00 | 11
2020-05-17 00:00:00 | 11
2020-05-18 00:00:00 | 11
2020-05-19 00:00:00 | 11
2020-05-20 00:00:00 | 11
2020-05-21 00:00:00 | 11
2020-05-22 00:00:00 | 11
2020-05-23 00:00:00 | 11
2020-05-24 00:00:00 | 11
2020-05-25 00:00:00 | 11
2020-05-26 00:00:00 | 11
2020-05-27 00:00:00 | 11
2020-05-28 00:00:00 | 11
2020-05-29 00:00:00 | 12
2020-05-30 00:00:00 | 12
2020-05-31 00:00:00 | 12
2020-06-01 00:00:00 | 12
2020-06-02 00:00:00 | 12
2020-06-03 00:00:00 | 12
2020-06-04 00:00:00 | 12
2020-06-05 00:00:00 | 12
2020-06-06 00:00:00 | 12
2020-06-07 00:00:00 | 12
2020-06-08 00:00:00 | 12
2020-06-09 00:00:00 | 12
2020-06-10 00:00:00 | 12
2020-06-11 00:00:00 | 12
2020-06-12 00:00:00 | 13
2020-06-13 00:00:00 | 13
2020-06-14 00:00:00 | 13
2020-06-15 00:00:00 | 13
2020-06-16 00:00:00 | 13
2020-06-17 00:00:00 | 13
2020-06-18 00:00:00 | 13
2020-06-19 00:00:00 | 13
2020-06-20 00:00:00 | 13
2020-06-21 00:00:00 | 13
2020-06-22 00:00:00 | 13
2020-06-23 00:00:00 | 13
2020-06-24 00:00:00 | 13
2020-06-25 00:00:00 | 13
2020-06-26 00:00:00 | 14
2020-06-27 00:00:00 | 14
2020-06-28 00:00:00 | 14
2020-06-29 00:00:00 | 14
2020-06-30 00:00:00 | 14
2020-07-01 00:00:00 | 14
2020-07-02 00:00:00 | 14
2020-07-03 00:00:00 | 14
2020-07-04 00:00:00 | 14
2020-07-05 00:00:00 | 14
2020-07-06 00:00:00 | 14
2020-07-07 00:00:00 | 14
2020-07-08 00:00:00 | 14
2020-07-09 00:00:00 | 14
2020-07-10 00:00:00 | 15
2020-07-11 00:00:00 | 15
2020-07-12 00:00:00 | 15
2020-07-13 00:00:00 | 15
2020-07-14 00:00:00 | 15
2020-07-15 00:00:00 | 15
2020-07-16 00:00:00 | 15
2020-07-17 00:00:00 | 15
2020-07-18 00:00:00 | 15
2020-07-19 00:00:00 | 15
2020-07-20 00:00:00 | 15
2020-07-21 00:00:00 | 15
2020-07-22 00:00:00 | 15
2020-07-23 00:00:00 | 15
2020-07-24 00:00:00 | 16
2020-07-25 00:00:00 | 16
2020-07-26 00:00:00 | 16
2020-07-27 00:00:00 | 16
2020-07-28 00:00:00 | 16
2020-07-29 00:00:00 | 16
2020-07-30 00:00:00 | 16
2020-07-31 00:00:00 | 16
2020-08-01 00:00:00 | 16
2020-08-02 00:00:00 | 16
2020-08-03 00:00:00 | 16
2020-08-04 00:00:00 | 16
2020-08-05 00:00:00 | 16
2020-08-06 00:00:00 | 16
2020-08-07 00:00:00 | 17
2020-08-08 00:00:00 | 17
2020-08-09 00:00:00 | 17
2020-08-10 00:00:00 | 17
2020-08-11 00:00:00 | 17
2020-08-12 00:00:00 | 17
2020-08-13 00:00:00 | 17
2020-08-14 00:00:00 | 17
2020-08-15 00:00:00 | 17
2020-08-16 00:00:00 | 17
2020-08-17 00:00:00 | 17
2020-08-18 00:00:00 | 17
2020-08-19 00:00:00 | 17
2020-08-20 00:00:00 | 17
2020-08-21 00:00:00 | 18
2020-08-22 00:00:00 | 18
2020-08-23 00:00:00 | 18
2020-08-24 00:00:00 | 18
2020-08-25 00:00:00 | 18
2020-08-26 00:00:00 | 18
2020-08-27 00:00:00 | 18
2020-08-28 00:00:00 | 18
2020-08-29 00:00:00 | 18
2020-08-30 00:00:00 | 18
2020-08-31 00:00:00 | 18
2020-09-01 00:00:00 | 18
2020-09-02 00:00:00 | 18
2020-09-03 00:00:00 | 18
2020-09-04 00:00:00 | 19
2020-09-05 00:00:00 | 19
2020-09-06 00:00:00 | 19
2020-09-07 00:00:00 | 19
2020-09-08 00:00:00 | 19
2020-09-09 00:00:00 | 19
2020-09-10 00:00:00 | 19
2020-09-11 00:00:00 | 19
2020-09-12 00:00:00 | 19
2020-09-13 00:00:00 | 19
2020-09-14 00:00:00 | 19
2020-09-15 00:00:00 | 19
2020-09-16 00:00:00 | 19
2020-09-17 00:00:00 | 19
2020-09-18 00:00:00 | 20
2020-09-19 00:00:00 | 20
2020-09-20 00:00:00 | 20
2020-09-21 00:00:00 | 20
2020-09-22 00:00:00 | 20
2020-09-23 00:00:00 | 20
2020-09-24 00:00:00 | 20
2020-09-25 00:00:00 | 20
2020-09-26 00:00:00 | 20
2020-09-27 00:00:00 | 20
2020-09-28 00:00:00 | 20
2020-09-29 00:00:00 | 20
2020-09-30 00:00:00 | 20
2020-10-01 00:00:00 | 20
2020-10-02 00:00:00 | 21
2020-10-03 00:00:00 | 21
2020-10-04 00:00:00 | 21
2020-10-05 00:00:00 | 21
2020-10-06 00:00:00 | 21
2020-10-07 00:00:00 | 21
2020-10-08 00:00:00 | 21
2020-10-09 00:00:00 | 21
2020-10-10 00:00:00 | 21
2020-10-11 00:00:00 | 21
2020-10-12 00:00:00 | 21
2020-10-13 00:00:00 | 21
2020-10-14 00:00:00 | 21
2020-10-15 00:00:00 | 21
2020-10-16 00:00:00 | 22
2020-10-17 00:00:00 | 22
2020-10-18 00:00:00 | 22
2020-10-19 00:00:00 | 22
2020-10-20 00:00:00 | 22
2020-10-21 00:00:00 | 22
2020-10-22 00:00:00 | 22
2020-10-23 00:00:00 | 22
2020-10-24 00:00:00 | 22
2020-10-25 00:00:00 | 22
2020-10-26 00:00:00 | 22
2020-10-27 00:00:00 | 22
2020-10-28 00:00:00 | 22
2020-10-29 00:00:00 | 22
2020-10-30 00:00:00 | 23
2020-10-31 00:00:00 | 23
2020-11-01 00:00:00 | 23
2020-11-02 00:00:00 | 23
2020-11-03 00:00:00 | 23
2020-11-04 00:00:00 | 23
2020-11-05 00:00:00 | 23
2020-11-06 00:00:00 | 23
2020-11-07 00:00:00 | 23
2020-11-08 00:00:00 | 23
2020-11-09 00:00:00 | 23
2020-11-10 00:00:00 | 23
2020-11-11 00:00:00 | 23
2020-11-12 00:00:00 | 23
2020-11-13 00:00:00 | 24
2020-11-14 00:00:00 | 24
2020-11-15 00:00:00 | 24
2020-11-16 00:00:00 | 24
2020-11-17 00:00:00 | 24
2020-11-18 00:00:00 | 24
2020-11-19 00:00:00 | 24
2020-11-20 00:00:00 | 24
2020-11-21 00:00:00 | 24
2020-11-22 00:00:00 | 24
2020-11-23 00:00:00 | 24
2020-11-24 00:00:00 | 24
2020-11-25 00:00:00 | 24
2020-11-26 00:00:00 | 24
2020-11-27 00:00:00 | 25
2020-11-28 00:00:00 | 25
2020-11-29 00:00:00 | 25
2020-11-30 00:00:00 | 25
2020-12-01 00:00:00 | 25
2020-12-02 00:00:00 | 25
2020-12-03 00:00:00 | 25
2020-12-04 00:00:00 | 25
2020-12-05 00:00:00 | 25
2020-12-06 00:00:00 | 25
2020-12-07 00:00:00 | 25
2020-12-08 00:00:00 | 25
2020-12-09 00:00:00 | 25 
2020-12-10 00:00:00 | 25 
2020-12-11 00:00:00 | 26 
2020-12-12 00:00:00 | 26

db <>在这里拨弄

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Oracle中生成动态SQL

来自分类Dev

如何在MS SQL中生成表?

来自分类Dev

如何在不同选项卡中生成输出以在 Oracle SQL Developers 中同时执行查询?

来自分类Dev

如何在SQL Server中生成随机数据

来自分类Dev

如何在Teradata SQL中生成自动编号

来自分类Dev

如何在BigQuery Standard SQL中生成序列

来自分类Dev

如何在旧版SQL Server中生成JSON结果?

来自分类Dev

如果为null,如何在sql中生成uniqueidentifier

来自分类Dev

如何在 MS SQL 中生成 SKU id

来自分类Dev

如何在sql中生成随机数?

来自分类Dev

如何在 T-SQL 中生成浅色随机颜色

来自分类Dev

如何从sql查询结果中生成一个dynatree?

来自分类Dev

如何在Oracle中生成以物理方式排序的GUID作为主键?

来自分类Dev

如何在 oracle 表中生成 1 到 10 百万之间的 5% 唯一数字?

来自分类Dev

如何在jOOQ中生成带有LIMIT子句但没有OFFSET子句的SQL语句?

来自分类Dev

如何在PL / SQL过程中生成Dynamic Order by子句?

来自分类Dev

如何在SQL Server 2008中生成随机布尔值?

来自分类Dev

如何在一个SQL查询中生成多个时间序列?

来自分类Dev

如何在SQL SERVER中生成X范围内的随机数

来自分类Dev

如何在SQL SERVER 2016+中生成SHA-3(256)哈希

来自分类Dev

如何在SQL Server中生成附加到getdate()的随机时间戳?

来自分类Dev

如何在SQL SERVER 2005中生成查询,该查询给出类似Matrix的输出?

来自分类Dev

如何在SQL SERVER2008中生成100000个无重复随机数

来自分类Dev

如何在Php / SQL中生成字母数字,哪种方法更好?

来自分类Dev

如何在Firebase中生成“ storageBucket”?

来自分类Dev

如何在MongoDB中生成ObjectID

来自分类Dev

如何在Matlab中生成此矩阵

来自分类Dev

如何在Android中生成小apk

来自分类Dev

如何在jQuery中生成字母数组?

Related 相关文章

  1. 1

    在Oracle中生成动态SQL

  2. 2

    如何在MS SQL中生成表?

  3. 3

    如何在不同选项卡中生成输出以在 Oracle SQL Developers 中同时执行查询?

  4. 4

    如何在SQL Server中生成随机数据

  5. 5

    如何在Teradata SQL中生成自动编号

  6. 6

    如何在BigQuery Standard SQL中生成序列

  7. 7

    如何在旧版SQL Server中生成JSON结果?

  8. 8

    如果为null,如何在sql中生成uniqueidentifier

  9. 9

    如何在 MS SQL 中生成 SKU id

  10. 10

    如何在sql中生成随机数?

  11. 11

    如何在 T-SQL 中生成浅色随机颜色

  12. 12

    如何从sql查询结果中生成一个dynatree?

  13. 13

    如何在Oracle中生成以物理方式排序的GUID作为主键?

  14. 14

    如何在 oracle 表中生成 1 到 10 百万之间的 5% 唯一数字?

  15. 15

    如何在jOOQ中生成带有LIMIT子句但没有OFFSET子句的SQL语句?

  16. 16

    如何在PL / SQL过程中生成Dynamic Order by子句?

  17. 17

    如何在SQL Server 2008中生成随机布尔值?

  18. 18

    如何在一个SQL查询中生成多个时间序列?

  19. 19

    如何在SQL SERVER中生成X范围内的随机数

  20. 20

    如何在SQL SERVER 2016+中生成SHA-3(256)哈希

  21. 21

    如何在SQL Server中生成附加到getdate()的随机时间戳?

  22. 22

    如何在SQL SERVER 2005中生成查询,该查询给出类似Matrix的输出?

  23. 23

    如何在SQL SERVER2008中生成100000个无重复随机数

  24. 24

    如何在Php / SQL中生成字母数字,哪种方法更好?

  25. 25

    如何在Firebase中生成“ storageBucket”?

  26. 26

    如何在MongoDB中生成ObjectID

  27. 27

    如何在Matlab中生成此矩阵

  28. 28

    如何在Android中生成小apk

  29. 29

    如何在jQuery中生成字母数组?

热门标签

归档