查询每个学生的各科成绩sql语句

数据库中有三个表Student,Course,Grade分别表示学生,课程,成绩表的结构如下:Student(studentId,name,sex)分别表示:学号,姓名,... 数据库中有三个表 Student , Course, Grade 分别表示 学生, 课程,成绩
表的结构如下: Student( studentId, name, sex) 分别表示: 学号,姓名, 性别
Course ( cid , cname) 分别表示: 课程号,课程名
Grade ( gid, studentId , cid, score) 分别表示: 成绩编号, 学号, 课程号, 成绩

现在要查询每个学生的各科成绩和平均分
查询结果打印出的样式如下:

序号 姓名 性别 语文 数学 英语 哲学 平均成绩
1 王五 男 80 70 80 90 80
2 李明 女 90 70 70 80 77.5

列名 语文, 数学, 英语, 哲学 是 Course 中的课程名, 查询出的样式一定要与上面的一样,(假设 Course 表中 cname 只有四个 语文, 数学, 英语, 哲学)

在线等,如果答出来了,本人一定重赏
展开
 我来答
匿名用户
2013-12-09
展开全部

SELECT 姓名,性别,课程名,成绩 INTO #tab 
FROM  Student s LEFT  JOIN Grade g ON  s.studentId=g.studentId LEFT JOIN  Course c ON g.cid=c.id

DECLARE @sql VARCHAR(1000)
SET @sql='select 姓名,性别  '
 SELECT @sql=@sql+' , max(case #tab.课程名 when '''+a.课程名 +''' then tb.result else 0 end  )as ['+ a.课程名+ ']'
 FROM (SELECT DISTINCT #tab.课程名 FROM #tab ) AS a
 SET @sql=@sql+ ',avg(成绩) from #tab group by #tab.name '
  EXEC ( @sql)
追问
你的这个SQL语句执行了没?怎么看起来不对
追答
CREATE TABLE Student
(
studentId VARCHAR(30),
[name] VARCHAR(30),
sex VARCHAR(20)
)
CREATE TABLE Course
(
cid VARCHAR(20),
cname VARCHAR(30)
)
CREATE TABLE Grade
(
gid VARCHAR(30),
studentId VARCHAR(30),
cid VARCHAR(20),
score INT
)

INSERT INTO Student
SELECT '1','王五' , '男' UNION ALL
SELECT '2','李明' , '女'
go
INSERT INTO Course
SELECT '1' , '语文' UNION ALL
SELECT '2' , '数学' UNION ALL
SELECT '3' , '英语' UNION ALL
SELECT '4' , '哲学'
go
Insert INTO Grade
SELECT '1' ,'1', '1','80' UNION ALL
SELECT '2' ,'1', '2','70' UNION ALL
SELECT '3' ,'1', '3','80' UNION ALL
SELECT '4' ,'1', '4','90' UNION ALL
SELECT '5' ,'2', '1','90' UNION ALL
SELECT '6' ,'2', '2','70' UNION ALL
SELECT '7' ,'2', '3','70' UNION ALL

SELECT '8' ,'2', '4','80'

SELECT [name],sex,cname,score INTO #tab

FROM Student s LEFT JOIN Grade g ON s.studentId=g.studentId LEFT JOIN Course c ON g.cid=c.cid
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式