| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4424 人关注过本帖, 2 人收藏
标题:如何在一个表中寻找出某个字段中的记录它们的长度相同但内容不同
取消只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏(2)
已结贴  问题点数:20 回复次数:30 
如何在一个表中寻找出某个字段中的记录它们的长度相同但内容不同
例如:1个表中一个字段名称:科目,它有如下内容
   科目 
语文,数学,物理
语文,生物,数学
语文,物理,数学
数学,生物,语文

语文,物理,数学,政治
语文,数学,物理

语文,物理,政治,数学
语文,物理,数学
....
当然在表中前面排列顺序凌乱。
原来想统计各报考科目的数字
select 报名点代码,科类,count(*) as 科数 from ls2 group by 报名点代码,科目
但发现:物理,数学与语文,数学,物理分别统计

实际上语文,物理,数学与语文,数学,物理,它们是考相同的科目,我要把它变成相同的顺序。
ls2.rar (2.37 KB)
如何在一个表中找出它长度相同名称不同,并且只有列出各不相同的一对(语文,数学,物理语文,物理,数学有N对,只要列出一对),然后有相同的顺序替换成,便于统计。

搜索更多相关主题的帖子: 报名点 count 记录 如何 数学 
2014-05-20 13:09
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
运行此句 aStr[i] = ALLT(STREXTRACT(cStr,',',',',i))提示文件STREXTRACT.prg 不存在
2014-05-20 14:26
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
我没有此浙江容博高中学校群里 请放在此论坛上,好吗
2014-05-20 14:46
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
sdta:试一下,能实现,美中不足就是速度有点慢。
2014-05-20 15:09
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用wengjl在2014-5-20 15:24:09的发言:

你告诉邮箱,我发给你
sylkn4@ 谢谢了
2014-05-20 16:34
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
现在我想在下表中分别求出各科的人数。
如下格式
库1
报名点代码,地理人数
库2
报名点代码,历史人数
库3
报名点代码,化学人数
,,,,


下面的代码为何不行,找不到‘地理’列
ckm='地理化学历史生物数学物理英语政治'
nkm=len(ckm)
for i=1 to nkm STEP 2
 dkm=substrc(ckm,i,2)
select 报名点代码,count(*) as &dkm. from Temp1.DBF where &dkm.$km group by 报名点代  into table &dkm.
毛病可能出在count(*) as &dkm.
图片附件: 游客没有浏览图片的权限,请 登录注册
2014-05-20 17:25
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用sylknb在2014-5-20 14:26:46的发言:

运行此句 aStr = ALLT(STREXTRACT(cStr,',',',',i))提示文件STREXTRACT.prg 不存在
是我搞错了,在添加字段时subject变成了subjectc
对不起。
2014-05-20 18:50
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
先提示一下吧,好吗?
2014-05-20 21:14
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用tlliqi在2014-5-20 21:39:00的发言:

以语文人数为例:在4楼代码中做下变通
*--各科人数统计
Select sum(IIF([语文]$km,1,0)) 语文人数 From Temp Into Cursor Temp1
Select Temp1
Browse
有多少科有多少条命令太不理想
2014-05-20 22:15
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用liuxingang28在2014-5-20 13:56:21的发言:

尽管楼主的表结构设计并不利于统计报考各科目的人数,但我还是对楼主的问题给出了解决方案:
为 ls2.dbf 新增一个字段 subject c(50),用于保存整理后的报考课目,然后执行如下代码:
CLOSE ALL
USE ls2
SCAN FOR !EMPTY(报考科目)
    cStr = ','+ALLT(报考科目)+','        && 为报考科目加前后定界符,便于使用 STREXTRACT()提取科目
    nNum = OCCURS(',',cStr) - 1          && 报考科目数
    DIMENSION aStr[nNum]                 && 将各科目保存到数组
    FOR i = 1 TO nNum
        aStr[i] = ALLT(STREXTRACT(cStr,',',',',i))
    NEXT
    = ASORT(aStr)                        && 对科目进行排序
    cStr = ''                            && 由数组重新组合成报考科目字符串
    FOR i = 1 TO nNum
        cStr = cStr + IIF(i=1,'',',')+aStr[i]
    NEXT
    REPLACE subject WITH cStr            && 保存排序后的报考科目
ENDSCAN
GO TOP
BROWSE
DIMENSION aStr[nNum]                 && 将各科目保存到数组
    FOR i = 1 TO nNum
        aStr[i] = ALLT(STREXTRACT(cStr,',',',',i))
    NEXT
中STREXTRACT函数第5个参数I表示何义?从for循环中STREXTRACT函数第5个参数I的值中1,2,3,4,5,。。VFP9帮助文件中第5个参数是1,2,4
2014-05-22 09:25
快速回复:如何在一个表中寻找出某个字段中的记录它们的长度相同但内容不同
数据加载中...
 
   



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

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