当前位置: 代码迷 >> Sql Server >> 初学者请问:求一SQL语句,请指点一下
  详细解决方案

初学者请问:求一SQL语句,请指点一下

热度:99   发布时间:2016-04-24 09:07:58.0
菜鸟请教:求一SQL语句,请指点一下
本帖最后由 galaxy_1981 于 2015-04-29 14:19:58 编辑
环境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
------解决思路----------------------
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 
------解决思路----------------------
搞定!
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)

  相关解决方案