菜鸟请教:求一SQL语句,请指点一下

galaxy_1981 2015-04-29 02:18:48
环境sql server2008

表A:

ID NAME CODE
1 钢卷 20150429001
2 钢卷 20150429001
3 木材 20150429001
4 木材 20150429002
5 钢板 20150429002
6 钢卷 20150429003
7 甘油 20150429003
8 甘油 20150429004

其中CODE的前面8位为日期(20150429),后面3位是每天的流水号(001)

我想返回比当天流水号大1的数值,请问SQL语句怎么写??

举例:
假如表A记录数仅有上面的8条数据,那么今天(2015.4.29)执行SQL,则返回的CODE为20150429005,明天的话就是20150430001
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
galaxy_1981 2015-05-06
  • 打赏
  • 举报
回复
引用 6 楼 shinger126 的回复:
[quote=引用 5 楼 galaxy_1981 的回复:] [quote=引用 4 楼 rfq 的回复:] 注意 , 如果号 是 唯一的 这样 并发 可能有问题。 go 最好 在事物 中 TABLOCKX
CODE肯定不唯一的[/quote] 真奇怪你们这个设计,为什么不直接分成2个列?一列日期,一列流水号[/quote] 日期有单独的列
shinger126 2015-05-06
  • 打赏
  • 举报
回复
引用 5 楼 galaxy_1981 的回复:
[quote=引用 4 楼 rfq 的回复:] 注意 , 如果号 是 唯一的 这样 并发 可能有问题。 go 最好 在事物 中 TABLOCKX
CODE肯定不唯一的[/quote] 真奇怪你们这个设计,为什么不直接分成2个列?一列日期,一列流水号
galaxy_1981 2015-05-06
  • 打赏
  • 举报
回复
引用 4 楼 rfq 的回复:
注意 , 如果号 是 唯一的 这样 并发 可能有问题。 go 最好 在事物 中 TABLOCKX
CODE肯定不唯一的
rfq 2015-04-30
  • 打赏
  • 举报
回复
注意 , 如果号 是 唯一的 这样 并发 可能有问题。 go 最好 在事物 中 TABLOCKX
galaxy_1981 2015-04-29
  • 打赏
  • 举报
回复
先谢过,明天上班试一下
shadowpj 2015-04-29
  • 打赏
  • 举报
回复
搞定! select convert(varchar(8),getdate(),112)+right('000'+cast(max(right(billcode,3))+1 as varchar(3)),3) from spcrk where left(billcode,8)=convert(varchar(8),getdate(),112)
还在加载中灬 2015-04-29
  • 打赏
  • 举报
回复
DECLARE @D VARCHAR(8)
SET @D='20150430'--要查的日期
SELECT @D+RIGHT('00'+LTRIM(ISNULL(RIGHT(MAX(CODE),3),0)+1),3)
FROM A
WHERE LEFT(CODE,8)=@D
另外,明天的话应该是20150430001

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧