update fenji Set Flags = b.Flag from fenji a inner join ( select pointname,flag=case  when (datediff([n],starttime,getdate())>0 and datediff( [n],starttime,getdate()) % spatime =wucha and datediff([n],xtime,dateadd([n],- 2 * wucha,getdate()) )>0 ) then 1 else 0 end   From ( select a.pointname,a.starttime,convert(datetime,max(b.xdate+' '+b.xtime),120) as xtime,a.spatime ,a.wucha from fenji a inner join xinxi b on a.pointname=b.pointname and a.starttime<getdate() group by a.pointname,a.starttime,a.spatime ,a.wucha)t )b on a.PointName=b.PointName