订单编号如下:D1101009
D+年份(11)+月份(01)+第几张单(009)怎么查询本月的最后一张订单。新加订单的时候需要在后面(009)累加!

解决方案 »

  1.   

    select top 1 * from tab
    where 订单编号 like 'D1101%'
    order by 订单编号 desc
      

  2.   

    select top 1 * from tab where 订单编号 like 'D1101%'
    order by cast(订单编号 as int) desc
      

  3.   

    --本月的最后一张订单
    select top 1 * from tb
    where 订单编号 like 'D'+right(DATENAME(yy,getdate()),2)+right(DATENAME(mm,getdate()),2)+'%'
    order by 订单编号 desc
      

  4.   

    select top 1 * from tab where 订单编号 like 'D1101%'
    order by 年 desc,月 desc
      

  5.   


    --本月的新加订单的订单号
    select top 1 left(订单编号,5)+right('000'+ltrim((cast(right(订单编号,3) as int)+1)),3) from tb
    where 订单编号 like 'D'+right(DATENAME(yy,getdate()),2)+right(DATENAME(mm,getdate()),2)+'%'
    order by 订单编号 desc
      

  6.   

    right('000'+ltrim((cast(right(订单编号,3) as int)+1)),3)
    有点不懂!
      

  7.   

    right(订单编号,3):订单编号的右三位,即流水号 009
    cast :将字段型流水号转为int型,再加1 ,即:10
    再利用ltrim,将得到的最大流水号转为字符型 '10'
    '000'+'010'='000010'
    再right('000010',3)='010'
      

  8.   

    最后两行错了一点,应该是这样
    '000'+'10'='00010'
    再right('00010',3)='010'
      

  9.   


    hibernate 里面跑 就出错了
    java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
      

  10.   

    问题解决了,我跑的sql  不是hql