| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2630 人关注过本帖
标题:求字段中的最大值、最小值、不重复值个数等
取消只看楼主 加入收藏
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
结帖率:100%
收藏
已结贴  问题点数:90 回复次数:9 
求字段中的最大值、最小值、不重复值个数等
各位老师好!
发过去二个表,n1n5,zdz.
求:当表n1n5中的n1字段值=80时,求n5字段的最大值、最小值、有多少个值、有多少个不重复的值;   
    当表n1n5中的n1字段值=81时,求n5字段的最大值、最小值、有多少个值、有多少个不重复的值;
    当表n1n5中的n1字段值=82时,求n5字段的最大值、最小值、有多少个值、有多少个不重复的值;
    ........
    当表n1n5中的n1字段值=188时,求n5字段的最大值、最小值、有多少个值、有多少个不重复的值。
    将这些值放到表zdz的s80,s81,s82.....s188字段。
    表zdz已有4条记录,是手动统计录入的,没有不重复值的记录。
    将表n1n5中的qihao,h1,h2,n3最后一行带入表zdz的qihao,h1,h2,h3。
    将表n1n5表名带入zdz的zd字段。
    s80,s81,s82......s188字段为字符型,数值型不能间隔,不易区分。
   
四个截图的说明:
    n1n580,是表n1n5中字段n1=80时的截图,在表zdz中s80字段记    0
    n1n582,是表n1n5中字段n1=82时的截图,在表zdz中s82字段记    97   1
    n1n5178,是表n1n5中字段n1=178时的截图,在表zdz中s178字段记 152 178 2 2
    n1n5106,是表n1n5中字段n1=106时的截图,在表zdz中s106字段记 100 136 24 19

下面是我把11月28日吹水佬老师写的程序里的值排列下来,连续执行,一次完成。提供给各位老师。

SELECT RECNO() 记录号,* FROM n1n5 INTO CURSOR tmp
SELECT a.记录号,a.n1,b.记录号,b.n5 FROM tmp a JOIN tmp b ON a.n1==80 AND a.记录号==b.记录号-1

SELECT RECNO() 记录号,* FROM n1n5 INTO CURSOR tmp
SELECT a.记录号,a.n1,b.记录号,b.n5 FROM tmp a JOIN tmp b ON a.n1==81 AND a.记录号==b.记录号-1

SELECT RECNO() 记录号,* FROM n1n5 INTO CURSOR tmp
SELECT a.记录号,a.n1,b.记录号,b.n5 FROM tmp a JOIN tmp b ON a.n1==82 AND a.记录号==b.记录号-1

.........

SELECT RECNO() 记录号,* FROM n1n5 INTO CURSOR tmp
SELECT a.记录号,a.n1,b.记录号,b.n5 FROM tmp a JOIN tmp b ON a.n1==188 AND a.记录号==b.记录号-1




n1n5.zip (27.2 KB)

zdz.zip (2.62 KB)

n1n580.zip (4.21 KB)

n1n582.zip (5.38 KB)

n1n5106.zip (20.5 KB)

n1n5178.zip (6.98 KB)
搜索更多相关主题的帖子: FROM 多少 tmp 字段 记录 
2021-12-14 11:43
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 3楼 吹水佬
吹水佬老师,是。
2021-12-14 15:50
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 6楼 吹水佬
吹水佬老师,你好!
非常感谢你的帮助。
抱歉,我把要求搞错了。准确的要求是:当表n1n5中的n1字段值=80时,求n5字段下一行的最大值、最小值、有多少个值、有多少个不重复的值;   
                                    当表n1n5中的n1字段值=81时,求n5字段下一行的最大值、最小值、有多少个值、有多少个不重复的值;
                                    当表n1n5中的n1字段值=82时,求n5字段下一行的最大值、最小值、有多少个值、有多少个不重复的值;
                                    ........
                                    当表n1n5中的n1字段值=188时,求n5字段下一行的最大值、最小值、有多少个值、有多少个不重复的值。
                                    将这些值放到表zdz的s80,s81,s82.....s188字段。
你11月28日写的程序,就是n5下一行数据。
恳请老师再帮助改一下。谢谢。
另外,请老师把运行结果形成自由表。
2021-12-15 13:19
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 9楼 吹水佬
吹水佬老师,你好!
我用你11月28日的程序得出下列:
n1=80时  n1,n5均为0,就是说,在表中n1没有=80的;
n1=81    n1n5同上
n1=82    n5的下一行=97
n1=83    同n1=80
n1=84    n5的下一行=98
n1=85    同n1=80
n1=86    n5的下一行=95
n1=87    得0
n1=88    得0
n1=89    n5的下一行 83、90、92、111 最大数111,最小数83,多少值4,不重复值4  
n1=90    得0
n1=91    n5的下一行 101、102、103、105、108  最大数108,最小数101,多少值5,不重复值5

n1=91的具体说明     表中1202行n1=91,1203行n5=101
                    表中2451行n1=91,2452行n5=105
                    表中3151行n1=91,3152行n5=102
                    表中4540行n1=91,4541行n5=108
                    表中4542行n1=91,4543行n5=103

不知是否说明白了。
再次感谢老师的帮助。

2021-12-15 15:52
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 11楼 吹水佬
当n1=80时,用下面的程序统计
USE n1n5 IN 0 ALIAS a
USE n1n5 IN 0 ALIAS b AGAIN
SELECT RECNO() 记录号,* FROM n1n5 INTO CURSOR tmp
SELECT a.记录号,a.n1,b.记录号,b.n5 FROM tmp a JOIN tmp b ON a.n1==80 AND a.记录号==b.记录号-1
记录为空,说明n1字段中没有=80的,因此,n5也为空,记为0
2021-12-15 19:11
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 13楼 吹水佬
吹水佬老师,你好!
我的思路是:当表n1n5中的n1字段值=80时,求n5字段下一行的最大值、最小值、有多少个值、有多少个不重复的值;   
            当表n1n5中的n1字段值=81时,求n5字段下一行的最大值、最小值、有多少个值、有多少个不重复的值;
            当表n1n5中的n1字段值=82时,求n5字段下一行的最大值、最小值、有多少个值、有多少个不重复的值;
            ........
            当表n1n5中的n1字段值=188时,求n5字段下一行的最大值、最小值、有多少个值、有多少个不重复的值。

老师11月28日的程序已经解决上述“下一行”的问题,只是n1的每个值的最大值、最小值、有多少个值、有多少个不重复的值
都要手动统计,才有了现在的想法。
11月28日的程序:
USE n1n5 IN 0 ALIAS a
USE n1n5 IN 0 ALIAS b AGAIN
SELECT RECNO() 记录号,* FROM n1n5 INTO CURSOR tmp
SELECT a.记录号,a.n1,b.记录号,b.n5 FROM tmp a JOIN tmp b ON a.n1==80 AND a.记录号==b.记录号-1

这就是我的思路,不知是否说明白了。
2021-12-15 19:56
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 15楼 吹水佬
回复 8楼 yd1954
有点不明
例如:
n1  n5
80  11
85  22
90  33
80  44
90  55
80  66
95  22
80  88
是不是这意思:
每当n1=80时,下一行的n5有:22、55、22
最大值55、最小值22、有3个值、有1个不重复的值

是这个意思。
我刚明白,这些数字是假设的。我的反应有些慢。对不起,抱歉。



2021-12-15 20:34
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 17楼 吹水佬
老师好!
我太笨了,几个小时也没找到“n1=80的n5”,也不会“换成下一行的n5”。
还请老师帮助指点。
2021-12-16 15:28
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 19楼 吹水佬
老师好!
我认真看了17楼回复,再次看了6楼的代码。
我想找到能代表“n1=80的n5”句子,我觉得应该在这两句:

SELECT n1,n5,COUNT(*) cnt  FROM n1n5 WHERE BETWEEN(n1,80,188) GROUP BY n1,n5-1 INTO CURSOR t1
SELECT *, "      " zd,000000 最大值,000000 最小值,000000 多少个值,000000 多少个不重复 FROM n1n5 WHERE .F. INTO CURSOR t2 READWRITE

但我不知在什么位置改“下一行的n5”,也不知道“下一行的n5”代码怎么写。

下面scan
.......
endscan   是具体计算。

请老师指教。
2021-12-16 20:11
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 21楼 吹水佬

n1  n5
80  11
80  22
80  33
98  44
这种情况的n1=80的下一行n5是不是:22、33、44

2021-12-16 21:55
快速回复:求字段中的最大值、最小值、不重复值个数等
数据加载中...
 
   



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

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