Crystal Reports: параметры параметра диапазона дат с помощью команды SQL - PullRequest
0 голосов
/ 06 июня 2019

В настоящее время я использую «1/1/1800» в качестве магической даты, чтобы мой отчет генерировал вчерашние данные, когда магическая дата вводится в параметры диапазона дат. Проблема в том, что теперь мне нужно удалить это магическое число и изменить SQL таким образом, чтобы в отчете по-прежнему оставалась возможность просматривать только вчерашние данные или вводить диапазоны дат. Возможность просмотра вчерашних данных только для целей планирования. Таким образом, пользователи не будут знать об этом, поэтому не должны замечать никакой разницы в отчете и в том, как он запрашивает входные данные.

Если бы я заменил «1/1/1800» на «Вчера», как я могу изменить свой SQL?

Любые предложения, пожалуйста?

declare
@beginDate datetime,
@endDate datetime

if ( convert(date, {?BeginDate}) = convert(date, '1/1/1800') and 
convert(date, {?EndDate}) = convert(date, '1/1/1800'))
Begin
set @beginDate = dateadd(day, datediff(day, 1, getdate()), 0);
set @endDate = dateadd(day, datediff(day, 1, getdate()), 0);
End
Else
Begin
set @beginDate = {?BeginDate};
set @endDate = {?EndDate};
End

select  Staffing_Calendar_Da, payhours, Staffing_Start_Dt, unit_name_ch, 
t.Pos_Desc_Ch, Wstat_Abrv_Ch, Payhours_day, Payhours_night, 
total_payhours,p.category2,
case when Payhours_day>0 then 'Day' end as 'Day',
Case    when Payhours_night>0 then 'Night' end as 'Night',
case    when total_payhours>0 then 'All' end as 'day_night'
from vw_position_OTP t
inner join vw_mcfrs_Position_Hours p on t.Pos_Desc_Ch=p.Pos_Desc_Ch
where t.Staffing_Calendar_Da between @beginDate and @endDate
and Category2 not like '%chief';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...