1.请按如图建立该表 插入如图数据
2.新建存储usp_getjh ,要求通过计算,获得 "jd"(进度)字段的值
判断标准 若bz=0 限制时间小于当前 则 jd赋值“超时未完成”;若bz=0 限制时间大于等于当前 则 jd赋值“未完成”;若bz=1 完成时间小于限制时间 则 jd赋值“已完成”;若bz=1 完成时间大于限制时间 则 jd赋值“超时已完成”
注:不可单独对数据进行计算,应通过一套算法,该算法试用于所有该类型数据,不局限于此表4条数据
1.请按如图建立该表 插入如图数据
2.新建存储usp_getjh ,要求通过计算,获得 "jd"(进度)字段的值
判断标准 若bz=0 限制时间小于当前 则 jd赋值“超时未完成”;若bz=0 限制时间大于等于当前 则 jd赋值“未完成”;若bz=1 完成时间小于限制时间 则 jd赋值“已完成”;若bz=1 完成时间大于限制时间 则 jd赋值“超时已完成”
注:不可单独对数据进行计算,应通过一套算法,该算法试用于所有该类型数据,不局限于此表4条数据
create PROCEDURE [usp_getjh]
AS
BEGIN
declare r cursor for select id,bz,xzsj,wcsj from dbo.jh
open r
declare @id int,@bz nvarchar(50),@xzsj date,@wcsj date
fetch next from r into @id,@bz,@xzsj,@wcsj
while @@FETCH_STATUS = 0
begin
update dbo.jh set jd = case
when @bz=0 and @xzsj<CONVERT (date, GETDATE()) then '超时未完成'
when @bz=0 and @xzsj>CONVERT (date, GETDATE()) then '未完成'
when @bz=1 and @wcsj<@xzsj then '已完成'
when @bz=1 and @wcsj>@xzsj then '超时已完成'
end
where id=@id
fetch next from r into @id,@bz,@xzsj,@wcsj
end
close r
deallocate r
END