子查询返回多个值该怎么解决!??!
比如说有这么个情况:有以下三个表:
得分表:
试卷号(对应每张卷子得分),各题得分(多个字段,记录各道题目得分)
1 98(举例,用一个值)
2 80
3 88
试卷表:
试卷号,学号(参加考试的学生),各题题号(多个字段,记录各道题目)
1 0001
2 0002
3 0001
学生表:
学号,姓名……
0001 小红
0002 小白
每个学生可以参加多次考试,现在想要搜索姓名为XX的学生成绩,sql语句应该怎么写?
想要实现搜索‘小红’,结果为: 98 88
用嵌套查询的话在where条件里会返回多个值,编译错误!
最后一点分了,都发出去了,大家帮帮忙!!!
sql
嵌套?多值
------解决方案--------------------select 姓名,[分数]=stuff((select ','+rtrim(各题得分) from 得分表 a join 试卷表 b on a.试卷号=b.试卷号 where b.学号=x.学号 for xml path('')),1,1,'') from 学生表 x where 姓名='小红'
------解决方案--------------------select c.得分
from 学生表 a,试卷表 b,得分表 c where a.学号=b.学号 and b.试卷号=c.试卷号
and a.姓名='XX'