| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖
标题:如何在原表中生成序号字段并根据lbdm填充序号
只看楼主 加入收藏
反璞归真
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2017-5-17
结帖率:100%
收藏
已结贴  问题点数:17 回复次数:10 
如何在原表中生成序号字段并根据lbdm填充序号
如何在原表中生成序号字段并根据lbdm填充序号,例如:01生成071201001至代码01结束,02生成071202001至代码02结束,以此类推。求助大师帮忙,十分感谢!


图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 表中 填充 序号 生成 字段 
2024-06-08 13:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:3 
REPLACE ALL XH WITH "0712"+ALLTRIM(LBDM)+"001"

坚守VFP最后的阵地
2024-06-08 16:12
反璞归真
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2017-5-17
收藏
得分:0 
回复 2楼 sdta
估计是我没有表达清楚意思,就是代码01有几个人生成几个连续号码。例如:01代码的生成071201001、071201002……071201006.怎么实现不同类别的流水编号。

[此贴子已经被作者于2024-6-8 20:41编辑过]

2024-06-08 17:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
程序代码:
CREATE CURSOR test (lbdm c(10), xh c(9))
INSERT INTO test (lbdm) VALUES ("01")
INSERT INTO test (lbdm) VALUES ("01")
INSERT INTO test (lbdm) VALUES ("01")
INSERT INTO test (lbdm) VALUES ("02")
INSERT INTO test (lbdm) VALUES ("02")
INSERT INTO test (lbdm) VALUES ("02")
INSERT INTO test (lbdm) VALUES ("02")
INSERT INTO test (lbdm) VALUES ("03")
INSERT INTO test (lbdm) VALUES ("03")
lcdm = SPACE(0)
lcxh = "071201"
SCAN 
    IF lbdm == lcdm
        lnxh = lnxh + 1
    ELSE
        lcdm = lbdm
        lnxh = 1
    ENDIF
    REPLACE xh WITH lcxh + PADL(lnxh,3,"0") 
ENDSCAN
BROWSE 



坚守VFP最后的阵地
2024-06-08 20:25
反璞归真
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2017-5-17
收藏
得分:0 
回复 4楼 sdta
有没有简单点的命令,直接在原表中生成序号字段填充流水号

[此贴子已经被作者于2024-6-8 21:04编辑过]

2024-06-08 21:03
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:105
注 册:2015-4-18
收藏
得分:3 
回复 4楼 sdta
我感觉他是比如01有6个,生成:01001至01006,02有9个,生成02001至02009,前缀共用0712
程序代码:
lcdm = SPACE(0)
lcxh = "0712"
SCAN 
    IF lbdm == lcdm
        lnxh = lnxh + 1
    ELSE
        lcdm = lbdm
        lnxh = 1
    ENDIF
    REPLACE xh WITH lcxh +ALLTRIM(LBDM) +PADL(lnxh,3,"0") &&&此处稍微修改一下
ENDSCAN
BROWSE 



[此贴子已经被作者于2024-6-9 16:33编辑过]

2024-06-08 22:13
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:105
注 册:2015-4-18
收藏
得分:0 
ceshi.rar (268 Bytes)

图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
Select lbdm,Count(*) rs From ceshi Group By 1 Into Array alcxh&&&ceshi为原表名
Select ceshi
Blank Fields xh All&&&增加测试用

Go Top
For i=1 To Alen(alcxh,1)
    For j=1 To alcxh[i,2]
        Replace xh With  "0712"+Alltrim(lbdm)+Padl(j,3,"0")
        If Not Eof()
            Skip 1
        Else
            Exit
        Endif
    Endfor
Endfor
Browse



[此贴子已经被作者于2024-6-9 05:48编辑过]

2024-06-08 22:17
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1788
专家分:3389
注 册:2012-2-29
收藏
得分:3 
回复 7楼 chychychy
4楼已经给出代码啦,是这样的吗?
哈哈,与你的6楼的一样哈。
图片附件: 游客没有浏览图片的权限,请 登录注册



[此贴子已经被作者于2024-6-9 06:34编辑过]

2024-06-09 06:29
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:3 
select recno() as rec, * from 你的表 into cursor temp
select a.xm, a.xb, a.lbdm, '0712'+a.lbdm+padl(1+a.rec-b.beg,3,'0') as 序号 from temp a ;
    inner join (select lbdm, min(rec) as beg from temp group by lbdm) b on a.lbdm = b.lbdm ;
    into dbf 结果表



[此贴子已经被作者于2024-6-9 06:55编辑过]


这家伙很懒,啥也没留下
2024-06-09 06:44
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:105
注 册:2015-4-18
收藏
得分:0 
回复 8楼 schtg
我就是完全复制的4楼的,就是替换那个地方lcxh = "071201"换成了lcxh = "0712"
2024-06-09 07:03
快速回复:如何在原表中生成序号字段并根据lbdm填充序号
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019373 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved