Wie kann ich Wochenenden und Feiertage in der SQL Server-Abfrage ausschließen?

Ich erstelle eine Abfrage, mit der das Datum ohne Feiertage und Wochenenden angepasst wird.

Beispieldaten:

Adjusted Date | Adjusted Date(Excluding Holidays and weekends)

02/06/16 | 02/09/16

In meinem Beispiel ist das Datum ein Wochenende und das angepasste Datum wird zu 9. Februar, da 8. Februar ein Feiertag ist. Daher muss es angepasst werden, damit das angepasste Datum ein Arbeitstag ist. Derzeit habe ich eine separate Tabelle mit allen Wochenenden und Feiertagen in einem Geschäftsjahr.

select  case when (
               select   count(dbo.WeekendsHoliday.[Weekends & Holidays])
               from     dbo.WeekendsHoliday
               where    dbo.WeekendsHoliday.[Weekends & Holidays] 
                    = case when convert(time, [Time Received]) > convert(time, '5:00:00 PM') 
                           then dateadd(day, 1, [Date Received]) 
                           else [Date Received] 
                      end
              ) > 0 
         then case (datename(DW, 
                             case when convert(time, [Time Received]) > convert(time, '5:00:00 PM') 
                                  then dateadd(day, 1, [Date Received])
                                  else [Date Received] 
                             end))
                when 'Saturday'
                then dateadd(day, 2, 
                             case when convert(time, [Time Received]) > convert(time, '5:00:00 PM') 
                                  then dateadd(day, 1, [Date Received])
                                  else [Date Received] 
                             end)
                else dateadd(day, 1, 
                             case when convert(time, [Time Received]) > convert(time, '5:00:00 PM') 
                                  then dateadd(day, 1, [Date Received])
                                  else [Date Received] 
                             end)
              end
    end as [Adjusted Date Excluding holidays and weekends]

Was hier passiert, ist, wenn der Feiertag 2 aufeinanderfolgende Tage (Donnerstag und Freitag) ist, das angepasste Datum wäre Samstag, was immer noch nicht gültig ist, da es ein Wochenende ist.

Angepasstes Datum ist ein Alias hier

Ich brauche wirklich deine Hilfe. Vielen Dan

Antworten auf die Frage(8)

Ihre Antwort auf die Frage