2

У меня есть требование в SSRS отчета, чтобы отобразить предыдущую дату рабочего дня в expression.I я использует ниже SQL в SQL-сервере для отображения датыКак отобразить предыдущий рабочий день, используя SSRS выражения

DATEADD(DAY, CASE DATENAME(WEEKDAY, GETDATE()) 
        WHEN 'Sunday' THEN -2 
        WHEN 'Monday' THEN -3 
        ELSE -1 END, DATEDIFF(DAY, 0, GETDATE())) 

могут некоторую помощи мне с аналогичным кодом для отображения предыдущего рабочего дня (только даты) в выражении ssrs?

ответ

4

Нечто подобное функционально эквивалентны в SSRS:

=DateAdd(DateInterval.Day 
    , Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3 
     ,DatePart(DateInterval.WeekDay, Today()) = 1, -2 
     ,True, -1) 
    , Today()) 

Или даже:

=DateAdd("d" 
    , Switch(DatePart("w", Today) = 2, -3 
     ,DatePart("w", Today) = 1, -2 
     ,True, -1) 
    , Today) 

Что же самое, но с несколькими ярлыками синтаксиса.

В зависимости от региона, в котором вы находитесь, вам может потребоваться либо вызвать функции даты с помощью параметра «Начало» или «неделя», либо отрегулировать числа в выражении, но вышеописанное работает для меня в британской среде.