| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
乐学 会学 多求 善思千里之行 始于足下
共有 484 人关注过本帖
标题:从表1.dbf中取数据形成新的表(表2.dbf)
只看楼主 加入收藏
wengjl
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:67
帖 子:1503
专家分:2712
注 册:2007-4-27
  得分:0 
附件: 您没有浏览附件的权限,请 登录注册

只求每天有一丁点儿的进步就可以了
2019-02-01 10:33
wengjl
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:67
帖 子:1503
专家分:2712
注 册:2007-4-27
  得分:0 
可以安心过年了哦。过年开心快乐!

只求每天有一丁点儿的进步就可以了
2019-02-01 10:34
wengjl
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:67
帖 子:1503
专家分:2712
注 册:2007-4-27
  得分:0 
新表中加了 总分(ZF)是为了检验用的

只求每天有一丁点儿的进步就可以了
2019-02-01 10:43
schtg
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:578
专家分:808
注 册:2012-2-29
  得分:4 
回复 11楼 wengjl
好!
2019-02-01 14:39
gs2536785678
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:10
帖 子:238
专家分:657
注 册:2017-7-16
  得分:4 
不就是EXCEL中的数据透视表么。

附件: 您没有浏览附件的权限,请 登录注册
2019-02-01 16:12
syksj
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-1-30
  得分:0 
多谢wengjl!
2019-02-01 16:19
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:176
帖 子:7508
专家分:18030
注 册:2012-2-5
  得分:4 
程序代码:
CLOSE DATABASES ALL
SELECT DISTINCT km FROM xxcx INTO ARRAY ajg
* 生成动态表结构 [color=#808080]*[/color]
cZdm = "Id C(8)"
FOR nCnt = 1 TO ALEN(ajg, 1)
    cZdm = cZdm + "," + SUBSTR(ajg[nCnt], 3) - LEFT(ajg[nCnt], 2) + "N(8)"
ENDFOR
* 创建临时统计表,并向临时统计表中追加 Id 数据及创建索引 [color=#808080]*[/color]
CREATE CURSOR tjb (&cZdm)
INSERT INTO tjb (Id) SELECT DISTINCT Id FROM xxcx
INDEX ON Id TAG Id
* 向临时统计表中增加数据 [color=#808080]*[/color]
SELECT xxcx
SET RELATION TO Id INTO tjb
SCAN
    REPLACE (ALLTRIM(SUBSTR(xxcx.Km, 3)) + LEFT(xxcx.Km, 2)) WITH xxcx.cj IN tjb
ENDSCAN
SET RELATION TO
* 浏览临时统计表 [color=#808080]*[/color]
SELECT tjb
SET ORDER TO
BROWSE

统计结果
附件: 您没有浏览附件的权限,请 登录注册

坚守VFP最后的阵地
2019-02-01 18:05
schtg
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:578
专家分:808
注 册:2012-2-29
  得分:0 
回复 17楼 sdta
学习,谢谢!
2019-02-01 19:53
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
  得分:4 
回复 16楼 syksj


这个程序是我写的通用型数据应用软件中的一个过程,用于将多条记录首尾相接连接成一行,或纵向合并成一条记录。每个分类的记录行数(如ID002有3行,ID004有4行,ID005有6行)可以不一样,并且可以根据需要将连接过的源库记录搬移到另外一库中。只要打开数据表,运行kjldzlj2,根据运行姿态选择参数,即可得到想要的结果。

[此贴子已经被作者于2019-2-3 08:00编辑过]

附件: 您没有浏览附件的权限,请 登录注册
2019-02-02 14:18
xuminxz
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:56
专家分:146
注 册:2011-5-8
  得分:4 
过年了,发个玩玩。
**
SET SAFETY OFF
CLOSE TABLES all

SELECT distinct km  FROM xxcx INTO CURSOR mpmp ORDER BY km READWRITE
alter table mpmp add zdmc c(10)
SELECT mpmp
REPLACE zdmc WITH SUBSTR(km,3) all
IF USED('xscj')
    USE IN xscj
endif
SELECT distinct id FROM xxcx INTO dbf  xscj  ORDER BY id
ALTER table  xscj ADD 补考数 n (1,0)
ALTER table  xscj ADD 参试科数 n (1,0)
FOR i =1 TO RECCOUNT("mpmp")
    SELECT mpmp
    GO i
    _zdmc=ALLTRIM(zdmc)
    ALTER table xscj ADD (_zdmc) n (3,0)
ENDFOR
SELECT xscj
GO top
DO WHILE !EOF()
    _id=ALLTRIM(id)
    SELECT SUBSTR(km,3) as km,cj,IIF(hg='不合格',1,0) as 补考数 FROM xxcx INTO CURSOR cjmp WHERE ALLTRIM(id)==_id
    FOR i=1 TO RECCOUNT('cjmp')
        SELECT cjmp
        GO i
        _zdmc=ALLTRIM(km)
        _cj=cj
        _bk=补考数
        SELECT xscj
        REPLACE (_zdmc) WITH _cj,补考数 WITH 补考数+_bk
    ENDFOR   
    REPLACE 参试科数 WITH RECCOUNT('cjmp')
    SELECT xscj
    skip
ENDDO

快两年不碰VFP了。
2019-02-07 14:55







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

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