注册 登录
编程论坛 VFP论坛

三表合并为一个表

hyf8285 发布于 2021-12-29 14:06, 1722 次点击
现有期末,期中,平时三张成绩表,现在想将这三张表按照各科期末*40%+期中*40%+平时*20,合并为一张新表,请教如何实现,谢谢!
只有本站会员才能查看附件,请 登录
6 回复
#2
gs25367856782021-12-29 14:58
转移到EXCEL中,三个表合并成一个表,然后就初中生都会了。
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2021-12-29 15:04编辑过]

#3
hyf82852021-12-29 15:37
回复 2楼 gs2536785678
谢谢!想在程序中实现,不转移到excel中,如何操作?
#4
厨师王德榜2021-12-29 16:26
程序代码:
CREATE CURSOR hz (姓名 c(20) , ;
平时语文  N(8,2) ,期中语文  N(8,2) ,;
期末语文  N(8,2) ,汇总语文  N(8,2) ,;
平时数学  N(8,2) ,期中数学  N(8,2) ,;
期末数学  N(8,2) ,汇总数学  N(8,2))

USE "平时.dbf" IN 0

INSERT INTO hz (姓名,平时语文,平时数学) ;
SELECT 姓名,语文,数学 FROM 平时
use in 平时

USE "期末.dbf" IN 0

INSERT INTO hz (姓名,期中语文,期中数学) ;
SELECT 姓名,语文,数学 FROM 平时
use in 期中

USE "期中.dbf" IN 0
INSERT INTO hz (姓名,期末语文,期末数学) ;
SELECT 姓名,语文,数学 FROM 平时
use in 期末

sele hz
INDEX on 姓名 TO idx_xm
TOTAL  TO  c:\hz1.dbf ON 姓名
USE IN hz
use c:\hz1.dbf in 0
sele hz1
REPLACE hz1.汇总数学 WITH (平时数学*.2 + 期中数学*.4 + 期末数学*.4) , ;
hz1.汇总语文 WITH (平时语文*.2 + 期中语文*.4 + 期末语文*.4) ALL
#5
吹水佬2021-12-29 18:18
程序代码:
SELECT a.姓名,;
       (a.语文+b.语文)*0.4+c.语文*0.2 汇总语文,;
       (a.数学+b.数学)*0.4+c.数学*0.2 汇总数学;
    FROM 期末 a,期中 b,平时 c;
    WHERE a.姓名==b.姓名 AND b.姓名==c.姓名
#6
sdta2021-12-29 18:22
SELECT a1.姓名, a1.语文 * 0.2 + (a2.语文 + a3.语文) * 0.4 语文, a1.数学 * 0.2 + (a2.数学 + a3.数学) * 0.4 数学 FROM 平时 a1, 期中 a2, 期末 a3 WHERE a1.姓名 = a2.姓名 AND a2.姓名 = a3.姓名
最好用学号做为连接条件,因为姓名重复的几率很大。
#7
hyf82852021-12-30 12:44
谢谢!
1