• 售前

  • 售后

热门帖子
入门百科

小系统票据自动生成存储过程

[复制链接]
眠眠不觉量 显示全部楼层 发表于 2021-10-26 13:11:16 |阅读模式 打印 上一主题 下一主题
复制代码 代码如下:
create table [order]
(
code varchar(50),
createtime datetime
)

--应用 usp_ordernumbergenerate(@prefix = 'PRC100701')
--传入前缀 大类+票据编码+6位日期
--获取当日该类票据最大流水号(需按日归零)
--此处判定有两种方法:一种是根据传入6位日期判定;另一种根据票据创建日期字段(条件:表有创建时间字段)
create procedure usp_OrderNumberGenerate
@prefix varchar(50)
as
declare @count int
declare @midcode varchar(3)
declare @Digits int = 3
declare @orderNumber varchar(50)

select @count = COUNT(*) from [order] where DATEDIFF(day, createtime, GETDATE()) = 0
if(@count = 0) --当日无票据情况 流水号为001
--print @count
select @orderNumber = @prefix + '001'
else --当日有票据情况 最大流水号+1
select @midcode = max(substring(midcode, 10, 3)) + 1
from [order]
where DATEDIFF(day, createtime, GETDATE()) = 0

select @orderNumber =@prefix + RIGHT(REPLICATE('0', @Digits)
+ CAST(@midcode as VARCHAR), @Digits)

print @ordernumber

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作