日期:2014-05-18  浏览次数:20424 次

求一SQL存储过程
如:
A B
id编号 | state状态 | sdate时间 id编号 | rdate时间
  1 | 0 | 2008-09-19 00:00:00 1 | 2008-09-19 09:30:00 
  2 | 0 | 2008-09-19 00:00:00 2 | 2008-09-19 08:30:00 
  3 | 0 | 2008-09-19 00:00:00 3 | 2008-09-19 10:30:00 
  4 | 0 | 2008-09-19 00:00:00 4 | 2008-09-19 09:10:00 
  1 | 0 | 2008-09-20 00:00:00 1 |  
  2 | 0 | 2008-09-20 00:00:00 2 | 2008-09-20 08:30:00 
  3 | 0 | 2008-09-20 00:00:00 3 | 2008-09-20 10:30:00 
  4 | 0 | 2008-09-20 00:00:00 4 | 2008-09-20 09:10:00 

当我执行时,给个时间的参数。然后要取出B表的时间和给出的时间进行判断。如果B表的时间大于给定的时间,则将A表里的状态(state)改为1,否则改为0。
B表里的时间有可能为空。(可能需要三个参数,一个给定的时间参数,还有两个是当日时间的开始和结束时间“当天 00:00:01 --当天 23:59:59)


------解决方案--------------------
Create Proc xxxxXXXXXXX
@editDate datetime,
@startDate datetime, 
@endDate datetime
AS
Update A Set State=1 From A Join B On A.[ID]=B.[ID]
Where B.[RDate] Between(@StartDate And @EndDate) And B.[RDate]>@EditDate



OK???
------解决方案--------------------
oo
------解决方案--------------------
顶起来
------解决方案--------------------
SELECT @gettime =rdate FROM B where rdate between @startDate and @endDate