cg代表采购
20040921代表日期
001 代表当天的第几张采购单
要怎么实现在类似于这样的增加呢?

解决方案 »

  1.   

    insert into tablename (字段名) values ('cg20040921001')
      

  2.   

    just a joke!问题不明白!
      

  3.   

    cg20040921001代表弟一条单号
    cg20040921002代表弟二条单号
    现在我要增加一条单号,想让他成为cg20040921003
    也就是增加一条单号在其当天的时间里面让其最大的单号增加1
      

  4.   

    从数据库里查找最大的编号 
    query1.sql.add(select max(字段名) from table )
    ss:=copy(query1.fields[0].asstring,2,11);
    ss:='cg'+IntToStr(StrToInt(ss)+1);
      

  5.   

    思路:
    ADOQuery1.SQL.Add('SELECT 字段名 FROM tablename ORDER BY 字段名 WHERE substring(字段名,3,8)=''20040921''');  
    ...ADOQuery1.Last;
    ...
    str := 'cg' + '20040921' + RightStr(ADOQuery1.FeildS[0].AsString,3)
      

  6.   

    从单号生成规则来看,表中应该会有一个日期字段,下面的ID代表单号,DateField代表日期字段select max(right(rtrim(ltrim(ID)),4))+1 from TableName
               where datediff(day,DateField,getdate())=0执行上面的语句后可以得到当天所录入的单句数目Num最后的生成格式为:'CG'+formatfloat('0000',Yearof(Date))+formatfloat('00',monthof(date))+
    formatfloat('00',dayof(date))+FormatFloat('0000',Num)
      

  7.   

    先获得当前最大的单号

    mLastMax:='cg20040921002';
    再通过它获得下一个单号mNowMax:=copy(mLastMax,1,10)+Format('%.3d',[StrToInt(mLastMax,11,3))+1]);
      

  8.   

    上面SQL改一下:ADOQuery1.SQL.Add('SELECT 字段名 FROM tablename WHERE substring(字段名,3,8)=''20040921'' ORDER BY 字段名');
      

  9.   

    上面写错了一点点,正确的如下先获得当前最大的单号

    mLastMax:='cg20040921002';
    再通过它获得下一个单号mNowMax:=copy(mLastMax,1,10)+Format('%.3d',[StrToInt(copy(mLastMax,11,3))+1]);