标题:求连续出现的最大值
只看楼主
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
结帖率:76.81%
已结贴  问题点数:20 回复次数:21 
求连续出现的最大值
如表:
bmax.rar (271 Bytes)

条件:
1、对连续出现“M1ZR”的个数统计,
2、对连续出现个数在前10行中(含第10行)进行比较,连续出现数为最大值时,在对应的字段"m1zrmax"标注 “M1ZRMAX”
如表中第10、14、24、32、42行.
谢谢!


[此贴子已经被作者于2021-6-25 10:47编辑过]

搜索更多相关主题的帖子: 表中 最大值 标注 个数 出现 
2021-06-25 10:23
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
为什么2和5...不用记录下来?

只求每天有一丁点儿的进步就可以了
2021-06-25 14:00
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
全部记录都是“M1ZR”时怎样标注“M1ZRMAX”
2021-06-25 14:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
从提供的数据猜想按每10条记录一组统计
程序代码:
DIMENSION arr[1]
ar = 0
n = 0
m = 0
nMax = 0
USE bmax
BLANK FIELDS m1zrmax ALL 
SCAN 
    IF ALLTRIM(m1zr)=="M1ZR"
        m = m +1
        IF m > nMax
            nMax = m
            n = RECNO()
        ENDIF
    ELSE
        m = 0
    ENDIF
    IF RECNO()%10==0 AND n>0
        ar = ar + 1
        DIMENSION arr[ar]  
        arr[ar] = n
        n = 0
        m = 0
        nMax = 0
    ENDIF
ENDSCAN
IF n > 0
    ar = ar + 1
    DIMENSION arr[ar]  
    arr[ar] = n
ENDIF
FOR i=1 TO ALEN(arr)
    GO arr[i]
    REPLACE m1zrmax WITH "M1ZRMAX"
ENDFOR
SELECT * FROM bmax

2021-06-25 14:49
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
以下是引用吹水佬在2021-6-25 14:03:51的发言:

全部记录都是“M1ZR”时怎样标注“M1ZRMAX”

1、首先是统计连续出现的数;
2、再每10行比较一次,第1次比较1-10行,第2次比较2-11行……。
3、标注时,当第10行的字段m1zr不为空时标注,否则不标注,类推;
可能此表结构有问题,以下表为准。
bmax.rar (310 Bytes)


[此贴子已经被作者于2021-6-25 15:10编辑过]

2021-06-25 14:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 5楼 fdqzy
我猜错了
2021-06-25 14:58
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
以下是引用吹水佬在2021-6-25 14:49:52的发言:

从提供的数据猜想按每10条记录一组统计
DIMENSION arr[1]
ar = 0
n = 0
m = 0
nMax = 0
USE bmax
BLANK FIELDS m1zrmax ALL
SCAN
    IF ALLTRIM(m1zr)=="M1ZR"
        m = m +1
        IF m > nMax
            nMax = m
            n = RECNO()
        ENDIF
    ELSE
        m = 0
    ENDIF
    IF RECNO()%10==0 AND n>0
        ar = ar + 1
        DIMENSION arr[ar]  
        arr[ar] = n
        n = 0
        m = 0
        nMax = 0
    ENDIF
ENDSCAN
IF n > 0
    ar = ar + 1
    DIMENSION arr[ar]  
    arr[ar] = n
ENDIF
FOR i=1 TO ALEN(arr)
    GO arr[i]
    REPLACE m1zrmax WITH "M1ZRMAX"
ENDFOR
SELECT * FROM bmax

谢谢!
但最后一条记录无标注。

[此贴子已经被作者于2021-6-25 15:09编辑过]

2021-06-25 15:00
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
给你添麻烦了!


[此贴子已经被作者于2021-6-25 15:13编辑过]

2021-06-25 15:05
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
应该是这个结果:
bmax.rar (315 Bytes)

第10行开始,1-10比较;2-11行比较;3-12行比较.......
不需要在字段m1zR不为空时才标,只要在10、11、12.……行都注明前10行连续出现的最大值也行

[此贴子已经被作者于2021-6-25 15:39编辑过]

2021-06-25 15:26
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
版主,就在10行开始,在每行都注明前10行连续出现的最大值
如下表:
bmax.rar (282 Bytes)


[此贴子已经被作者于2021-6-25 15:48编辑过]

2021-06-25 15:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506085-1-1.html




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

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