回 帖 发 新 帖 刷新版面

主题:一堆杂乱无章的数,如何统计出现的次数,代码应如何写呢,请高手支招

DBF表----A1
-----------------------------------------------------------------
表名  |  参数
P0001 |   29,24,35,02,34,20,31,36,10,09,25,14,28,01,26,23,15,33,
P0002 |   08,19,20,11,01,02,35,03,16,23,27,34,32,29,25,30,12,22,
P0003 |   26,21,11,22,16,24,12,27,33,13,15,18,04,05,19,02,03,31,
P0004 |   29,34,32,27,07,16,01,25,08,30,22,18,35,23,31,11,06,12,
P0005 |   04,14,05,06,08,21,17,01,36,34,13,22,03,23,33,24,25,30,
......      共有1万条记录     
-----------------------------------------------------------------

现在需要从A1表中取出 多张表(如8张) 来统计各数值出现的次数,代码应如何写呢,请高手支招。

需要的结论如下(举例):
8次: 20
5次:01,12,15
3次:03,04,09,23,29,33,35,36
2次:06,07,11,16,19
1次: …
0次:…

回复列表 (共28个回复)

沙发

?OCCURS("20",参数)

板凳

编一小段程序可实现每个数据出现的次数的统计,可用QQ联系,帮你实现!

3 楼

谢谢sywzs、jianzho 解答,感谢感谢!!再次请教用SQL如何合并以下的“参数”

DBF表----A1
-----------------------------------------------------------------
表名  |  参数
P0001 |   29,24,35,02,34,20,31,36,10,09,25,14,28,01,26,23,15,33,
P0002 |   08,19,20,11,01,02,35,03,16,23,27,34,32,29,25,30,12,22,
P0003 |   26,21,11,22,16,24,12,27,33,13,15,18,04,05,19,02,03,31,
P0004 |   29,34,32,27,07,16,01,25,08,30,22,18,35,23,31,11,06,12,
P0005 |   04,14,05,06,08,21,17,01,36,34,13,22,03,23,33,24,25,30,
......      共有1万条记录     
-----------------------------------------------------------------

可问题是用SQL 如何实现参数合并在一起。即 P0001--P008 各参数合并成“29,24,35,.....15,33"

我用了“自定义函数”但提示“文本超长”的错误。语句如下:

sele sumc("参数") from A1 

function sumc
lparameters cField
lc=''
scan
  lc=lc+alltrim(&cField)
endscan
return lc
----------------------方法2 用scan 但不能达到优化程序速度的目的
sele A1
scan 
  lc=lc+alltrim(A1.参数)
endscan

for F=1 to 36 &&注参数中共有36个数值
    ? OCCURS( padl(F,2,"0"),Lc )  && 统计出现次数
endfor 

4 楼


用备注型字段不就解决了

5 楼

n=36
Dime MyArray(n,2)
For I=1 To n
    MyArray(I,1)=Padl(Alltrim(Str(I)),2,'0')
    Select  OCCURS(MyArray(I,1),Bz) As nCount From A1 Into Cursor MyTable
    Sum nCount To MyArray(I,2)
Endfor
结果存于数组Myarray中。

6 楼

用 OCCURS 函数统计太慢了!!!

7 楼

1:将所有的此类字段汇总为一个表中

8 楼

2:将汇总表导成文本文件

9 楼

3:根据每行数据的个数,建同样数量字段的一个数据表

10 楼

4:将成文本文件导入该表

我来回复

您尚未登录,请登录后再回复。点此登录或注册