2016-04-21 3 views
0

Может ли кто-нибудь дать мне знать, как объявить дату в SSRS через некоторую логику?Объявление даты в SSRS по логике

if today = Monday затем начать date = today - 3days

if today != (not equal to) Monday затем начать date = today - 1day

Это должно быть дано в SSRS, так что если я нажимаю сегодняшнюю дату, вчерашние данные должны прийти в моем докладе.

+0

спасибо, можете ли вы изменить то же самое. если сегодняшняя дата понедельника, мне нужны данные субботы, а также пятницы .репортаж с понедельника по субботу. Потому что у меня есть данные и для субботы. спасибо – Mukesh

ответ

1

Если предположить, что в воскресенье, это должно также по умолчанию в пятницу, вы можете установить параметр по умолчанию для:

=IIf(WeekdayName(Weekday(Today)) = "Sunday", DateAdd("d", -2, today), 
iif(WeekdayName(Weekday(Today)) = "Monday", DateAdd("d", -3, today), 
DateAdd("d", -1, today))) 

Или для SQL:

DECLARE @Date DATE = '2016-04-18'; -- Monday 
SET @Date = DATEADD(DAY, CASE (DATEPART(WEEKDAY, @Date) + @@DATEFIRST) % 7 
          WHEN 1 THEN -2 
          WHEN 2 THEN -3 
          ELSE -1 
         END, DATEDIFF(DAY, 0, @Date)); 

SELECT @Date; 

Что дает 2016-04-15 (пятница)

+0

OP может не понадобиться в воскресенье. Обычно мы делаем то же самое, чтобы пользователи получали отчеты Mon - Fri с докладом в понедельник, включая выходные (Fri - Sun). –

+0

спасибо за ответ, есть требование сказать, что в параметре даты должна быть только одна запись даты, и отчет должен быть сгенерирован с даты ввода до даты окончания, как вчера. – Mukesh

+0

спасибо, можете ли вы изменить то же самое. если сегодняшняя дата понедельника, мне нужны данные субботы, а также пятницы .репортаж в понедельник в субботу. Потому что у меня есть данные и для субботы. спасибо – Mukesh

0

Напишите выражение в SSRS, чтобы установить Дата

=IIF(Weekday(Today()) = 2,DateAdd(DateInterval.Day,-3, Today()),DateAdd(DateInterval.Day,-1, Today()))