Crystal Reports:通过SQL命令的日期范围参数选项

时间:2019-06-06 13:52:35

标签: crystal-reports

我当前使用“ 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';

0 个答案:

没有答案
相关问题