| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 802 人关注过本帖, 2 人收藏
标题:如何在一组数据中按照不同类别添加序号!
只看楼主 加入收藏
lbwg
Rank: 2
等 级:论坛游民
帖 子:76
专家分:53
注 册:2011-8-21
结帖率:100%
收藏(2)
已结贴  问题点数:20 回复次数:10 
如何在一组数据中按照不同类别添加序号!
sj.rar (2.24 KB)
有这样一组数据,想根据报考类别,按照类别自动添加序号,每个类别的序号都从1开始。按类别分数据库分别添加可以,但是有时间类别很多,操作很麻烦,大家帮助分析一下。谢谢。
数据
类别   考号   序号
音乐   2221     1
美术   111      1
体育   333      1
体育   3333     2
美术    222     2
音乐   1222     2
美术    332     3
 

[ 本帖最后由 lbwg 于 2013-4-2 21:18 编辑 ]
搜索更多相关主题的帖子: 美术 体育 如何 
2013-04-02 21:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
贴出真实数据,1楼的数据数量太少,且没有规律性,数据无真实性

[ 本帖最后由 sdta 于 2013-4-2 21:20 编辑 ]

坚守VFP最后的阵地
2013-04-02 21:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
排序后再添加序号

坚守VFP最后的阵地
2013-04-02 21:18
lbwg
Rank: 2
等 级:论坛游民
帖 子:76
专家分:53
注 册:2011-8-21
收藏
得分:0 
排序后可以,但是每个类别人数不一致
数据我已经上传,大家看看
2013-04-02 21:19
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:10 
方法一:
CLOSE DATABASES
USE sj IN 0
SELECT distinct 类别 FROM sj INTO CURSOR sj_tmp
SELECT sj_tmp
SCAN
    SET FILTER TO ALLTRIM(类别)==ALLTRIM(sj_tmp.类别) IN SJ
    GO TOP IN sj
    i=0
    SELECT sj
    SCAN
        i=i+1
        REPLACE 序号 WITH i IN sj
   
    ENDSCAN
    SET FILTER TO IN SJ
    SELECT sj_tmp
ENDSCAN
CLOSE DATABASES
---------------------------
方法二:
CLOSE DATABASES
USE sj EXCLUSIVE  IN 0
SELECT *,RECNO() ID FROM (SELECT * FROM SJ ORDER BY 类别,考号) A  INTO CURSOR SJ_TMP READWRITE
UPDATE SJ_TMP SET 序号=SJ_TMP.ID-b.ID+1 from (select 类别,MIN(ID) ID from sj_TMP group by 类别 ) b WHERE sj_TMP.类别==b.类别
ZAP IN sj
SELECT sj
APPEND FROM (DBF('sj_tmp'))
CLOSE DATABASES



[ 本帖最后由 kiff 于 2013-4-3 07:46 编辑 ]
2013-04-02 21:22
lbwg
Rank: 2
等 级:论坛游民
帖 子:76
专家分:53
注 册:2011-8-21
收藏
得分:0 
谢谢,正确。帮我解决大忙了。还有其他办法吗?我要学习学习

[ 本帖最后由 lbwg 于 2013-4-2 21:27 编辑 ]
2013-04-02 21:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:10 
程序代码:
SELECT DISTINCT 类别 FROM SJ INTO CURSOR T
SELECT T
SCAN
   N=0
   SELECT SJ
   SCAN FOR ALLTRIM(类别)==ALLTRIM(T.类别)
        N=N+1
        REPLACE 序号 WITH N
   ENDSCAN
   SELECT T
ENDSCAN
SELECT SJ
BROWSE

坚守VFP最后的阵地
2013-04-02 21:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2013-04-02 21:30
lbwg
Rank: 2
等 级:论坛游民
帖 子:76
专家分:53
注 册:2011-8-21
收藏
得分:0 
谢谢,学习了。
2013-04-02 21:32
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
SELECT 类别,考号,000 序号,RECNO() JLH FROM SJ INTO CURSOR SJ1 READWRITE
UPDATE SJ1 SET SJ1.序号=(SELECT COUNT(*)+1 FROM SJ1 B WHERE SJ1.JLH>B.JLH AND SJ1.类别=B.类别) FROM SJ1
SELECT SJ1
BROWSE

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

坚守VFP最后的阵地
2013-04-02 22:29
快速回复:如何在一组数据中按照不同类别添加序号!
数据加载中...
 
   



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

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