Если у вас осталось только 3 и 4, то вы можете легко получить каждое значение в вашей таблице со значениями day
и night
, используя APPLY
и VALUES
FROM YourTable YT
CROSS APPLY (VALUES('Day'),('Night')) V(Day_Night)
Наконец, чтобы получить логику 33/38, это может сработать в зависимости от вашего языка:
CASE WHEN V.Day_Night = 'Day' AND DATENAME(WEEKDAY,YT.[date]) IN ('Monday','Tuesday','Wednesday','Thursday','Friday') THEN 38
WHEN V.Day_Night = 'Night' AND DATENAME(WEEKDAY,YT.[date]) IN ('Saturday','Sunday') THEN 38
END
Обратите внимание, что в вышеприведенном коде нет логики для ночных будней и дневного времени в выходные дни, и т. Д.вернул бы значение NULL
.