SELECT A.学员编号, 平均成绩 = AVG(数学成绩 + 语文成绩)*1.0/2, 总成绩 = (数学成绩 + 语文成绩) FROM 数学成绩表 A INNER JOIN 语文成绩表 B ON A.学员编号 = B.学员编号
看不到图 SELECT 学员编号,AVG(成绩) AS 平均成绩,SUM(成绩) AS 总成绩FROM ( SELECT 学员编号,数学成绩 AS 成绩 FROM 数学成绩表 UNION ALL SELECT 学员编号,语文成绩 AS 成绩 from 语文成绩表) GROUP BY 学员编号
SELECT A.学员编号, 平均成绩 = (数学成绩 + 语文成绩)*1.0/2, 总成绩 = (数学成绩 + 语文成绩) FROM 数学成绩表 A INNER JOIN 语文成绩表 B ON A.学员编号 = B.学员编号
SELECT 学员编号,AVG(成绩) AS 平均成绩,SUM(成绩) AS 总成绩FROM ( SELECT 学员编号,数学成绩 AS 成绩 FROM 数学成绩表 UNION ALL SELECT 学员编号,语文成绩 AS 成绩 from 语文成绩表) B GROUP BY 学员编号 修正下
select 学号,avg(成绩)as 平均成绩,sum(成绩) as 总成绩 from ( select 学号,成绩 from 数学成绩表 union all select 学号,成绩 from 语文成绩表 )t group by 学号
/* 数学成绩表a(id,val) id学生编号,val成绩 语文成绩表b(id,val) id学生编号,val成绩 */ select a.id 学生编号,1.*(a.val+b.val)/2 平均成绩,(a.val+b.val)总成绩 from a inner join b on a.id = b.id
FROM 数学成绩表 A
INNER JOIN
语文成绩表 B
ON A.学员编号 = B.学员编号
SELECT 学员编号,AVG(成绩) AS 平均成绩,SUM(成绩) AS 总成绩FROM (
SELECT 学员编号,数学成绩 AS 成绩 FROM 数学成绩表
UNION ALL
SELECT 学员编号,语文成绩 AS 成绩 from 语文成绩表)
GROUP BY 学员编号
FROM 数学成绩表 A
INNER JOIN
语文成绩表 B
ON A.学员编号 = B.学员编号
SELECT 学员编号,数学成绩 AS 成绩 FROM 数学成绩表
UNION ALL
SELECT 学员编号,语文成绩 AS 成绩 from 语文成绩表) B
GROUP BY 学员编号
修正下
from
(
select 学号,成绩 from 数学成绩表
union all
select 学号,成绩 from 语文成绩表
)t
group by 学号
/*
数学成绩表a(id,val) id学生编号,val成绩
语文成绩表b(id,val) id学生编号,val成绩
*/
select a.id 学生编号,1.*(a.val+b.val)/2 平均成绩,(a.val+b.val)总成绩
from a inner join b on a.id = b.id
http://topic.csdn.net/u/20090216/10/21c61f43-bb8f-4cdc-87f9-7da16202c1da.html
数学成绩表:语文成绩表:
不好意思,还得说明一下:
由于有的人只参加了数学考试,有的人只参加了语文考试,有的人两门都参加了,有的人两门都没参加。
所以只能用avg()函数,而不能用 两门成绩/2。
(
select 学员编号 , 成绩 from 数学成绩表
union all
select 学员编号 , 成绩 from 语文成绩表
) t
group by 学员编号