| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 948 人关注过本帖
标题:数据比较取值的问题
只看楼主 加入收藏
reedwu
Rank: 1
等 级:新手上路
威 望:1
帖 子:113
专家分:5
注 册:2006-9-23
结帖率:100%
收藏
已结贴  问题点数:50 回复次数:6 
数据比较取值的问题
if8888.rar (76.38 KB)
程序的设计思路是:先取值shhigh字段中nday(参数)范围里的最大值,shlow字段中nday范围里的最小值,再取最大最小的中间值,分别给字段temp1,temp2,temp3,然后比较shhigh是否大于temp1,如果大于temp1,则记录这行开始,直到shclose字段小于temp3为止的记录,从记录中取出这段中shhigh的最大值和shlow的最小值,开始的temp1,结束的temp3以及shno,shtime和temp3时shno与temp1的shno的差,取出7个字段值另存新表。
如13行的shhigh值是2953,temp1值是2952,那就从13行开始计算,直到38行,shclose值为2992.4,temp3值为2992.5,取出的数据另存新表的结果为,
38   2011-6-15,三    25  2952  3001.7 2932.7 2992.5   以此类推到表尾,我开始的程序如下:
USE if8888.DBF ALIAS A
NDAY=13
  SELECT A
     
             FOR I=1 TO RECCOUNT()-(nday-1)
                 SELECT MAX(SHHIGH),MIN(SHLOW) FROM if8888 WHERE BETWEEN(RECNO(),I,I+(nday-2)) INTO ARRAY AA
                 SELECT A
                 REPLACE temp1 WITH AA(1,1),temp2 WITH AA(1,2),temp3 WITH 0.5*temp1+0.5*temp2 FOR RECNO()=I+(nday-1)
                 GO I+(nday-1)
            
             ENDFOR
但我的比较语句不会写,谢谢各位不吝赐教


搜索更多相关主题的帖子: 记录 最大值 
2012-06-19 15:05
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2202
专家分:3862
注 册:2007-4-27
收藏
得分:9 
比较语句 用IF嘛

只求每天有一丁点儿的进步就可以了
2012-06-19 20:30
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:680
专家分:1287
注 册:2009-3-1
收藏
得分:9 
嗯,要比较 用IF
2012-06-20 07:40
reedwu
Rank: 1
等 级:新手上路
威 望:1
帖 子:113
专家分:5
注 册:2006-9-23
收藏
得分:0 
我的要求是如果shhigh>temp1,那就记录那行的shno,temp1,忽略中间的值,直到shclose<temp3,取出那行的shno,shtime,temp3,再计算shno-shno,取出2个shno中间shhigh的最大值,shlow的最小值,if好像不行吧
2012-06-20 09:38
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:296
专家分:808
注 册:2012-6-15
收藏
得分:9 
我看了一下,有些迷糊!

学习交流VFP,QQ:248561326。
2012-06-20 16:49
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9820
专家分:27099
注 册:2012-2-5
收藏
得分:9 
回复 5楼 cxzbzgz
关键是问题没说清楚,这种问题不是几句话就能说的清楚的

坚守VFP最后的阵地
2012-06-20 17:45
reedwu
Rank: 1
等 级:新手上路
威 望:1
帖 子:113
专家分:5
注 册:2006-9-23
收藏
得分:0 
回复 5楼 cxzbzgz
if888.rar (242.71 KB)
再说下数据的处理,有6个数据字段,shopen,shhigh,shlow,shclose,temp1,temp3,先比较shhigh>temp1第一次出现在那行,记录下那行shno(1)的数据,从shno(1)开始比较shclose<temp3出现在那行shno(2)作为结束,取出shno(1)时temp1,shno(2)时的temp3,取出shno(1)到shno(2)中间的shhigh最大值和shlow最小值,作为新表的数据,再从shno(2)开始比较shhigh>temp1第一次出现的shno(3),和shno(3)后面出现shclose<temp3时 的shno(4),一直到表尾
比拟下就是有xy轴,x轴是shno,y轴是sh的6个字段,其中有2根平行线,1根是temp1构成,1根是temp3构成,当shhigh的值超过temp1就记录shno下来,然后再用shclose<temp3做判断,看shno有多长间隔,再取间隔中的数据
附excel表,要取出的值我用红色标注了,就是在一个区域里只需要红色数字组成新表

[ 本帖最后由 reedwu 于 2012-6-21 16:09 编辑 ]
2012-06-21 10:36
快速回复:数据比较取值的问题
数据加载中...
 
   



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

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