实现说明:
前台传进几个数据,从一个表中搜索出同这几个数据完全一样的一条记录!
要求:
表中存在一个标记字段is_audit ,当通过传入的数据搜索时,结果集中存在记录有可能is_audit=0
or is_audit=1.
每次返回的结果只能是一条而且is_audit=0 ,当结果集中只有一条记录且is_audit=1 时,返回error=0
当@@rowcount=0 时返回error=-1
当系统中存在二条完全一样且is_audit=0 时,先返回第一条且要updata is_audit=1
select @prod_no=m.co_no
from t_PaperCO m
where
m.qty=@qty
and m.art_id=@art_id
and m.csize_l=@csize_l
and m.csize_w=@csize_w
and m.cust_id=@cust_id
and m.size_yx1=@yx1
and m.size_yx2=@yx2
and m.size_yx3=@yx3
and m.size_yx4=@yx4
and m.size_yx5=@yx5
and m.yx_id=@press
and convert(char(10),m.co_date,111) >convert(char(10),dateadd(dd,-5,getDate()),111)
if @@rowcount<1 --如果没有订单就提示并退出
begin
set @errno='-1'
goto _error
end
select top 1 @prod_no=co_no from t_PaperCO
where @prod_no=co_no and convert(char(10),co_date,111) >convert(char(10),dateadd(dd,-5,getDate()),111)
and is_audit='0'
if @@rowcount<1 --此单审核了
begin
set @errno='0'
goto _error
end update t_PaperCO set is_audit='1',auditor=@user_name,audit_date=getdate() where co_no=@prod_no and is_audit='0' _exit:
set nocount off
return 0
_error:
set nocount off
return 1
请重新写出一高效算法.
前台传进几个数据,从一个表中搜索出同这几个数据完全一样的一条记录!
要求:
表中存在一个标记字段is_audit ,当通过传入的数据搜索时,结果集中存在记录有可能is_audit=0
or is_audit=1.
每次返回的结果只能是一条而且is_audit=0 ,当结果集中只有一条记录且is_audit=1 时,返回error=0
当@@rowcount=0 时返回error=-1
当系统中存在二条完全一样且is_audit=0 时,先返回第一条且要updata is_audit=1
select @prod_no=m.co_no
from t_PaperCO m
where
m.qty=@qty
and m.art_id=@art_id
and m.csize_l=@csize_l
and m.csize_w=@csize_w
and m.cust_id=@cust_id
and m.size_yx1=@yx1
and m.size_yx2=@yx2
and m.size_yx3=@yx3
and m.size_yx4=@yx4
and m.size_yx5=@yx5
and m.yx_id=@press
and convert(char(10),m.co_date,111) >convert(char(10),dateadd(dd,-5,getDate()),111)
if @@rowcount<1 --如果没有订单就提示并退出
begin
set @errno='-1'
goto _error
end
select top 1 @prod_no=co_no from t_PaperCO
where @prod_no=co_no and convert(char(10),co_date,111) >convert(char(10),dateadd(dd,-5,getDate()),111)
and is_audit='0'
if @@rowcount<1 --此单审核了
begin
set @errno='0'
goto _error
end update t_PaperCO set is_audit='1',auditor=@user_name,audit_date=getdate() where co_no=@prod_no and is_audit='0' _exit:
set nocount off
return 0
_error:
set nocount off
return 1
请重新写出一高效算法.
当@@rowcount=0 时返回error=-1
当系统中存在二条完全一样且is_audit=0 时,先返回第一条且要updata is_audit=1 看到这有些绕,lz怎么确定 返回的结果只能是一条,如果多条,怎么处理,都没有交代清楚
首先查看表中有没有符合条件的记录
如果没有,提示退出(无记录)
如果有,就加上is_audit=0再查
如果没有,提示退出(有记录,标志为真)
如果有,返回top 1 的记录 ,并且设is_audit=1
我也搞晕了!