| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 979 人关注过本帖
标题:请教各位大大:有没有更好的方法实现筛选出当前记录中,N个项目中不为0的项 ...
取消只看楼主 加入收藏
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
结帖率:90%
收藏
已结贴  问题点数:10 回复次数:2 
请教各位大大:有没有更好的方法实现筛选出当前记录中,N个项目中不为0的项目数,及将数值从大到小排序到一个临时表中
CREATE CURSOR 测试表 (项目1 Y,项目2 Y,项目3 Y,项目4 Y,项目5 Y,项目6 Y)
INSERT INTO 测试表 VALUES (23,0,11,33,0,25)
INSERT INTO 测试表 VALUES (23,10,21,43,0,15)
INSERT INTO 测试表 VALUES (23,0,0,53,0,55)

需要筛选出当前记录中,N个项目中不为0的项目数,及将数值从大到小排序到一个临时表中
结果:
记录2:  4个项目
项目数值
43
23
21
15

我用
Copy To Array gaTemp Fields Like 项目* Next 1   
也要5条语句才能实现,不知有没有更好的方法?
搜索更多相关主题的帖子: 项目 数值 方法 记录 测试 
2022-07-13 16:31
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 

程序代码:
CREATE CURSOR 测试表 (项目1 Y,项目2 Y,项目3 Y,项目4 Y,项目5 Y,项目6 Y)
INSERT INTO 测试表 VALUES (23,0,11,33,0,25)
INSERT INTO 测试表 VALUES (23,10,21,43,0,15)
INSERT INTO 测试表 VALUES (23,0,0,53,0,55)
Copy To Array gaTemp Fields Like 项目* Next 1
Dimension gaTemp(FCOUNT(),1)
Create Cursor 结果1 (分数 Y )
Append From Array gaTemp
Select 分数 From 结果1 Where 分数#0 Order By 分数 Desc Into Cursor tmp结果
2022-07-13 23:26
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 
指向记录号1和2时,数组都为NULL?

以下是引用吹水佬在2022-7-14 08:12:08的发言:


也可以直接在数组处理,无需再通过表来操作

CREATE CURSOR 测试表 (项目1 Y,项目2 Y,项目3 Y,项目4 Y,项目5 Y,项目6 Y)
INSERT INTO 测试表 VALUES (0,0,0,0,0,0)
INSERT INTO 测试表 VALUES (23,1,11,33,2,25)
INSERT INTO 测试表 VALUES (23,10,21,43,0,15)
INSERT INTO 测试表 VALUES (23,0,0,53,0,55)
*GO TOP
Copy To Array gaTemp Fields Like 项目* Next 1
DIMENSION gaTemp[ALEN(gaTemp)]
ASORT(gaTemp,1,-1,1)
n = ASCAN(gaTemp,0)
IF BETWEEN(n,2,ALEN(gaTemp))
    DIMENSION gaTemp[n-1]
ELSE
    STORE null TO gaTemp
ENDIF
LIST MEMORY LIKE gaTemp

2022-07-14 10:45
快速回复:请教各位大大:有没有更好的方法实现筛选出当前记录中,N个项目中不为 ...
数据加载中...
 
   



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

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