环境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)