不能这样写,请用动态语句:如
...............
declare @where varchar(8000)
if @stdate is null
set @where=''
else
set @where=' when tradedate between '''+@stdate+''' and '''+@enddate+''''........
...............
declare @where varchar(8000)
if @stdate is null
set @where=''
else
set @where=' when tradedate between '''+@stdate+''' and '''+@enddate+''''........
set @where='select * from tblname '
if @stdate is not null
set @where=' when tradedate between '''+@stdate+''' and '''+@enddate+''''
exec(@where)
........
declare @s varchar(20),@e varchar(20)
--select @s='2001/5/5' ,@e='2005/9/9'
select * from jobmain where reqdate between isnull(@s,getdate()-1000) and isnull(@e,getdate()+1)
where tradedate between isnull(@stdate,(select min(tradedate) as mindate from V_sellbln)) and isnull(@enddate,(select max(tradedate) as maxdate from V_sellbln))