| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3168 人关注过本帖
标题:求循环套循环,两个表相同字段比较
只看楼主 加入收藏
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 9楼 吹水佬
老师好!
“结果在tmp临时表要放进“3d9选个数表”就 APPEND 进去”

我将程序的结尾改为:SELECT * FROM 3d9选个数

结果并没有在3d9选个数表里显示。3d9选个数里只显示原有的三行记录。

老师讲的“tmp放进3d9选个数”怎么放?在何处放?
2021-06-05 19:01
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:70 
回复 11楼 yd1954
程序代码:
USE 3d9选个数 IN 0 ALIAS t_3d9选个数
SELECT * FROM t_3d9选个数 WHERE .F. INTO CURSOR tmp READWRITE 
SELECT tmp
APPEND FROM 分列统计15期 FOR RECNO()==RECCOUNT()
SCATTER TO arr
ZAP
APPEND FROM 3d999个数
DIMENSION atj[ALEN(arr)] 
STORE 0 TO atj
n = FCOUNT()
atj[1] = arr[1]
SCAN 
    SCATTER TO ar
    FOR i=2 TO n
        IF ar[i]==arr[i]
            atj[i] = atj[i] + 1
        ENDIF
    ENDFOR
ENDSCAN
SELECT t_3d9选个数
LOCATE FOR qihao==atj[1]
IF FOUND()
    GATHER FROM atj
ELSE
    APPEND FROM ARRAY atj
ENDIF
SELECT * FROM t_3d9选个数
CLOSE DATABASES ALL
RETURN

2021-06-05 20:07
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
收藏
得分:0 
回复 10楼 sdta
sdta老师你好!

CLOSE DATABASES
t1 = SECONDS()
USE d3选个数 && 原名:3d9选个数
ZAP (我改动为*zap)
lcZd = ""
FOR lnj = 1 TO AFIELDS(azds)
    lcZd = lcZd + "," + azds[lnj, 1]
ENDFOR
lcZd = SUBSTR(lcZd, 2)
SELECT &lcZd FROM 分列统计15期 WHERE RECNO() = RECCOUNT() INTO ARRAY afl
USE
lcZd1 = SUBSTR(lcZd, 7)
SELECT &lcZd1 from d3_999个数 INTO CURSOR temp
INSERT INTO d3选个数 (Qihao) values(afl[1])
FOR lnj = 2 TO ALEN(afl)
    SELECT temp
    lc = FIELD(lnj - 1)
    COUNT TO nCnt FOR &lc = afl[lnj]
    REPLACE (lc) WITH nCnt RECORD 1 IN d3选个数
ENDFOR
? SECONDS() - t1
SELECT d3选个数

我将zap注释掉了,就出现上面的结果。将zap恢复后,在d3选个数表里显示的只是一行数据。
在分列统计15期增加一条记录,运行老师的程序,d3选个数里显示的只是增加的那一条记录的统计。
我的想法是d3选个数表里数据每一行都应该保留,以便观察和进一步统计。不知应该怎么改,请老师指教。
谢谢!
2021-06-05 20:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
顺便说说,文件名要按规范起名,“3d9选个数”是不规范的。
2021-06-05 20:08
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1092
专家分:2686
注 册:2015-12-30
收藏
得分:0 

LOCAL ii,xqh,xfield
USE 分列统计15期 alias aa IN 0
SELECT aa
GO BOTTOM
xqh =qihao

USE 3d999个数 ALIAS cc IN 0

USE 3d9选个数 ALIAS bb IN 0
SELECT bb
LOCATE FOR qihao=xqh
IF EOF()    && 没找到,增加
    APPEND BLANK
    REPLACE qihao WITH xqh
ELSE   
    && 找到了,不需要做什么
ENDIF

SELECT bb
FOR ii=1 TO 190
    xfield = 'N'+TRANSFORM(ii)
    UPDATE bb SET &xfield=b.numcount FROM bb,(select COUNT(*) numcount FROM cc WHERE &xfield=aa.&xfield) b WHERE bb.qihao=xqh
ENDFOR

SELECT bb
* 最后一行是统计结果
BROWSE
2021-06-07 09:03
快速回复:求循环套循环,两个表相同字段比较
数据加载中...
 
   



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

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