Join to Calendar Table - 5 Business Days

前端 未结 1 1580
北荒
北荒 2021-01-28 13:12

So this is somewhat of a common question on here but I haven\'t found an answer that really suits my specific needs. I have 2 tables. One has a list of ProjectClosedDates. The o

相关标签:
1条回答
  • 2021-01-28 13:42

    Completely untested and not thought through:

    If the concept of "business days" is common and important in your system, you could add a column "Business Day Sequence" to your table. The column would be a simple unique sequence, incremented by one for every business day and null for every day not counting as a business day.

    The data would look something like this:

    Date       BDAY_SEQ
    ========== ========
    2014-03-03    1
    2014-03-04    2
    2014-03-05    3
    2014-03-06    4
    2014-03-07    5
    2014-03-08    
    2014-03-09    
    2014-03-10    6
    

    Now it's a simple task to find the N:th business day from any date. You simply do a self join with the calendar table, adding the offset in the join condition.

    select a.actual_date
          ,b.actual_date as nth_bussines_day
      from DateTable a
      join DateTable b on(
           b.bday_seq = a.bday_seq + 5
      );
    
    0 讨论(0)
提交回复
热议问题