Как я могу исключить выходные и праздничные дни в запросе SQL Server
Я создаю запрос, который будет корректировать дату, исключая праздничные и выходные дни.
Пример данных:
Adjusted Date | Adjusted Date(Excluding Holidays and weekends)
02/06/16 | 02/09/16
В моем примере Дата является выходным, а скорректированная дата становится 9 февраля, потому что 8 февраля - выходной день, поэтому ее необходимо настроить так, чтобы скорректированная дата была рабочим днем. В настоящее время у меня есть отдельная таблица всех выходных и праздничных дней в финансовом году.
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]
То, что происходит здесь, это если 2 дня подряд (четверг и пятница), скорректированная дата будет суббота, которая все еще не действительна, потому что это выходные.
Скорректированная дата является псевдонимом здесь
Мне действительно нужна твоя помощь. Спасибо