注册 登录
编程论坛 VB6论坛

新手求援,vb6 下sql 多表多字段求和查询

wangf1978 发布于 2013-11-11 08:36, 598 次点击
VB6下sql 多表多字段总分查询代码,菜鸟新手,抓破头皮仍不得解,求助各路大侠
表A:
考生号    考试           班别      姓名    语文    数学    英语
 1         第一次月考      1        张三     60        63      72
 2         第一次月考     2        李四     62        71      53
 3         第一次月考      3        王五     53        66      88
 1         第二次月考      1        张三     79        73      90
 2         第二次月考      2        李四     69        63      65
 3         第二次月考      3        王五     61        73      93

表B:
考生号    考试           班别      姓名    物理    化学    生物
 1         第一次月考      1        张三     70        63      72
 2         第一次月考     2        李四     63        71      56
 3         第一次月考      3        王五     66        69      81
 1         第二次月考      1        张三     76        63      92
 2         第二次月考      2        李四     63        68      62
 3         第二次月考      3        王五      69        63      99

需要实现的效果,六科总分查询:
考生号      班别       姓名     第一次月考    第二次月考
 1           1        张三        400           473
 2           2        李四        376           390
 3           3        王五        423           458
3 回复
#2
vbvcr512013-11-14 21:44
1.create view aa1 ----aa1视图作为临时表
as
select    表A.考生号,表A.班别,表A.姓名, 表A.考试 ,表A.语文,表A.数学,表A.英语,表b.物理,表b.化学,表b.生物    ,表A.语文+表A.数学+表A.英语+表b.物理+表b.化学+表b.生物 as 总分 from  表A   left join 表b  on  表b.考生号= 表A.考生号  and 表b.考试=表a.考试-----这部分也可用自然连接方法产生

2.create view a1----a1视图作为临时表
as
select 考生号,班别,姓名,总分 as 第一次月考 from aa1 where 考试='第一次月考'

3.create view a2----a2视图作为临时表
as
select 考生号,班别,姓名,总分 as 第二次月考 from aa1 where 考试='第二次月考'

4.最后,对a1和a2做自然连接
select a1.考生号,a1.班别,a1.姓名,a1.第一次月考,a2.第二次月考 from a1,a2 where a1.考生号=a2.考生号

结果如下图:
只有本站会员才能查看附件,请 登录


[ 本帖最后由 vbvcr51 于 2013-11-15 20:39 编辑 ]
#3
lowxiong2013-11-15 07:21
可以,不过需要一段程序组合一下sql语句,因为你还可能存在第三次月考、第四次月考等
#4
wangf19782013-12-20 20:22
非常感谢帮助,已有朋友帮助解决,正在消化中。
1