日付に特定の稼働日数を追加するSQLServer関数を作成する方法に関する投稿をいくつか見てきました。しかし、それらのどれも私が必要とする方法を正確に計算しません。現在コードで実行されている関数がありますが、ネイティブSQL Server関数に移動したいと思います(ストアドプロシージャとクエリで使用するため)。保管料の査定を開始する前に、お客様に貨物を収集するための5営業日を与えます。5営業日には、週末と休日は含まれません(休日の日付の表があります)。ここでの秘訣は、週末か休日かに関係なく、5営業日の直後に日付を取得する必要があるということです。そのため、最初の就業日ではなく、最後の就業日を返す関数が必要です。したがって、たとえば:
Oct 20th (Sat) plus 5 working days = Oct 26th (Fri)
Oct 21st (Sun) plus 5 working days = Oct 26th (Fri)
Oct 22nd (Mon) plus 5 working days = Oct 29th (Mon)
May 19th (Sat) plus 5 working days with May 21st a holiday = May 28th
現在の割り当ては5営業日ですが、将来変更される可能性があるため、稼働日数をパラメータにする必要があります。また、この関数はかなり大きなデータセットで使用される可能性があるため、ループなしでこれを実行することをお勧めします。SQLServer2008を実行しています。
編集:これは、終了日を営業日にしたいので、「ループなしでSQLに今日までの営業日を追加する」の複製ではありません。終了日を最後の猶予日の直後の日付にします(つまり、月から金までの5営業日、次の月ではなく土の日付を返します)。