| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 822 人关注过本帖
标题:如何排序顺代码?
只看楼主 加入收藏
mhf8855
Rank: 1
等 级:新手上路
帖 子:24
专家分:4
注 册:2014-6-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
如何排序顺代码?
姓名 代码  数值
A    01    10
A    02    11
A    03    10
A    04    9
B    01    6
B    02    4
B    03    9
B    04    10
C    01    11
C    02    16
C    03    21
C    04    22
按姓名将代码栏自动从01排到04,求高手帮忙.
搜索更多相关主题的帖子: 如何 姓名 
2014-11-06 15:41
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:10 
方法一:
先建立索引
INDEX ON 姓名+代码 TO XMDM

方法二:
SQL查询命令
SELECT * From 表 ORDER BY 姓名+代码

坚守VFP最后的阵地
2014-11-06 15:45
mhf8855
Rank: 1
等 级:新手上路
帖 子:24
专家分:4
注 册:2014-6-4
收藏
得分:0 
我的意思是表达错了,是自动把代码从01标到04
2014-11-06 16:03
mhf8855
Rank: 1
等 级:新手上路
帖 子:24
专家分:4
注 册:2014-6-4
收藏
得分:0 
回复 2 楼 sdta
我的意思是表达错了,是自动把代码从01标到04
2014-11-06 16:04
mhf8855
Rank: 1
等 级:新手上路
帖 子:24
专家分:4
注 册:2014-6-4
收藏
得分:0 
回复 2 楼 sdta
姓名 代码  数值
A         10
A         11
A         10
A         9
B          6
B         4
B         9
B         10
C         11
C         16
C         21
C         22
就是用什么命令自动安姓名,填充代码栏从01-04
2014-11-06 16:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:5 
姓名排序,遍历表,当前记录姓名不等于上一记录姓名时,初始代码为1, 否则为上一记录代码+1。

[ 本帖最后由 吹水佬 于 2014-11-6 16:16 编辑 ]
2014-11-06 16:14
mhf8855
Rank: 1
等 级:新手上路
帖 子:24
专家分:4
注 册:2014-6-4
收藏
得分:0 
回复 6 楼 吹水佬
麻烦详细命令给写下吧
2014-11-06 16:41
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:5 
*注意代码的长度,作出相应调整
SELECT distinct 姓名,0000 id FROM 表 INTO CURSOR t1 ORDER BY 姓名 READWRITE
REPLACE all id WITH RECNO() IN t1  &&刚才漏了 ALL
UPDATE 表 SET 代码=PADL(b.id,2,'0') from t1 b WHERE 表.姓名=b.姓名


[ 本帖最后由 kiff 于 2014-11-6 18:03 编辑 ]
2014-11-06 17:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:0 
以下是引用mhf8855在2014-11-6 16:41:14的发言:

麻烦详细命令给写下吧

程序代码:
* 假设“表”已经按“姓名”排序
SELECT 表
m姓名 = ""
m代码 = 0
SCAN 
    IF 表.姓名 == m姓名
        m代码 = m代码 + 1
    ELSE
        m姓名 = 表.姓名
        m代码 = 1
    ENDIF
    REPLACE 表.代码 WITH PADL(m代码, 2, "0")
ENDSCAN
2014-11-06 19:27
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9803
专家分:26906
注 册:2012-2-5
收藏
得分:0 

坚守VFP最后的阵地
2014-11-06 19:40
快速回复:如何排序顺代码?
数据加载中...
 
   



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

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