注册 登录
编程论坛 VFP论坛

把b5中一个字段里不重复的值复制或记录到b6指定字段,并记录出现的次数。

yd1954 发布于 2025-06-11 15:59, 164 次点击
把表b5中的hz_1b字段里的值,依出现的顺序记录到表b6的hz1g字段中,并在表b6的hz1c字段中记录重复出现的次数。
举例:
b5,hz_1b字段,第2行的值是0.0000,在b6的第1行hz1g字段中记0.0000,在同一行的hz1c字段记1;
b5,hz_1b字段,第3行的值是0.1778,在b6的第2行hz1g字段中记0.1778,在同一行的hz1c字段记1;
b5,hz_1b字段,第4行的值还是0.1778,在b6的第2行hz1c字段记2;
b5,hz_1b字段,第84行的值还是0.1778,在b6的第2行hz1c字段记3。
b5,第5行,第8行,第11行都是0.1111,在b6第3行hz1g字段记0.1111,在同一行hz1c字段记3。
以此类推。
我现在用的是VFP9。

只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
5 回复
#2
schtg2025-06-12 07:33
回复 楼主 yd1954
不知我的理解对否?
只有本站会员才能查看附件,请 登录

程序代码:
select distinct hz_1b as hz1g,min(xh) as zxh,000000 as hz1c from b5 group by hz_1b order by zxh into cursor t1 readwrite
select hz_1b,count(*) as zcs from b5 group by hz_1b into cursor t2
update t1 set t1.hz1c = t2.zcs from t1,t2 where t1.hz1g = t2.hz_1b
select hz1g,hz1c from t1 where hz1c > 0 order by zxh into table B6

上述语句还可以合并的。

[此贴子已经被作者于2025-6-12 07:48编辑过]

#3
yd19542025-06-12 10:12
回复 2楼 schtg
非常感谢老师的帮助。程序运行后,经手动核对,每个数值出现的次数,各个数值出现次数的总和,都对。非常感谢。
#4
yd19542025-06-13 07:20
回复 2楼 schtg
schtg老师,你好。
程序运行后,b6原有的三个字段变成两个字段。能否在程序运行后保留三个字段。
#5
schtg2025-06-13 08:04
回复 4楼 yd1954
添加上原来的3个字段即可哈
select distinct hz_1b as hz1g,min(xh) as zxh,000000 as hz1c from b5 group by hz_1b order by zxh into cursor t1 readwrite
select hz_1b,count(*) as zcs from b5 group by hz_1b into cursor t2
update t1 set t1.hz1c = t2.zcs from t1,t2 where t1.hz1g = t2.hz_1b
select 000 as h120q,000 as h120g,000 as h120c,hz1g,hz1c from t1 where hz1c > 0 order by zxh into table B6
#6
yd19542025-06-13 16:28
回复 5楼 schtg
非常感谢老师的帮助。谢谢。
1