当前位置: 代码迷 >> PB >> 出货单号 按系统日期以流水号产生(S+系统日期后六位(如:20100112,取100112)+流水号),该如何解决
  详细解决方案

出货单号 按系统日期以流水号产生(S+系统日期后六位(如:20100112,取100112)+流水号),该如何解决

热度:22   发布时间:2016-04-29 08:58:30.0
出货单号 按系统日期以流水号产生(S+系统日期后六位(如:20100112,取100112)+流水号)
出货单号 按系统日期以流水号产生(S+系统日期后六位(如:20100112,取100112)+流水号)
怎么实现!

------解决方案--------------------
--如果流水号取三位
select 'S' + RIGHT(convert(char(8),getdate(),112),6) +
REPLICATE('0',3 - len(cast(isnull(convert(numeric(5,0),max(right(单号,3))),0) + 1 as varchar))) + cast(isnull(convert(numeric(5,0),max(right(单号,3))),0) + 1 as varchar) from 出货单表
where convert(char(10),getdate(),120)=convert(char(10),制单日期,120)
------解决方案--------------------
string ls_key, ls_autono, ls_rtn

ls_key = 'S' + mid(系统日期,3,6)

select max(主key)
into :ls_auto_no
from aaa
 where 主key like ls_key + '%'
 using sqlca;

//假设流水号长度为4
if len(trim(ls_auto_no)) <> 0 then
ls_rtn = ls_key + string(long(mid(ls_autono,8,4)) + 1,'0000')
else
ls_rtn = ls_key + '0001'
end if

return ls_rtn