求一条更新语句!
1、有两个表“收文主表”和“办理阶段”。收文主表.办理阶段ID = 办理阶段.ID
2、“收文主表”中的字段分别为ID(int)、发案时间(datetime)、回复时间(datetime)、拆除时间(datetime)、立案时间(datetime)、处罚时间(datetime)、结案时间(datetime)和收文状态(tinyint)。
“办理阶段”中的字段分别为ID(int)、办理阶段(char(10))和催办期限(tinyint)。
3、现在需要写的SQL语句的思路如下:
(1)定义一个变量@EndTime(datetime),@StartTime(datetime)。
(2)判断“收文主表”中每条记录的办理阶段ID字段值。如果办理阶段ID为1,则@EndTime为该记录中“回复时间”字段的值;如果办理阶段ID为2,则@EndTime为该记录中“拆除时间”字段的值;如果办理阶段ID为3,则@EndTime为该记录中“立案时间”字段的值;如果办理阶段ID为4,则@EndTime为该记录中“处罚时间”字段的值;如果办理阶段ID为5,则@EndTime为该记录中“结案时间”字段的值。
(3)如果收文主表.办理阶段ID = 5,@StartTime = 收文主表.处罚时间;其他情况下,@StartTime = 收文主表.案发时间。
(4)求@StartTime和@EndTime的差值(DateDiff(day,@StartTime,@EndTime))。如果该差值小于0,收文主表.收文状态 = 1;如果该差值大于0小于等于办理阶段.催办期限,则收文主表.收文状态 = 2;如果差值大于办理阶段.催办期限,则收文主表.收文状态 = 3。
由于两个表中的相互引用很多,我对sql又很不熟悉,所以请大家帮帮忙!谢谢了。