大佬们,想请教下如何合并不同结构的表的查询结果
sql吧
全部回复
仅看楼主
level 2
♂独活♀ 楼主
是这样一个题目:
课程类别为A101、B101,C101为基础课和专业课,请统计各学生各类别所通过的课程门数、获得的学分(成绩大于等于60即通过课程获得学分)
我现在只能实现把结果放到两个查询结果中,想请教下如何能把列合并到一个查询结果中并合并学号相同的行
2019年05月30日 03点05分 1
level 2
♂独活♀ 楼主
这是我的命令行
select StudInfo.StudNo 学号,StudInfo.StudName 姓名,count(*) 基础课门数,sum(CourseCredit) 基础课学分
from StudInfo,StudScoreInfo,CourseInfo
where (StudScoreInfo.CourseID='A101' or StudScoreInfo.CourseID='B101')
and StudInfo.StudNo=StudScoreInfo.StudNo and StudScoreInfo.CourseID=CourseInfo.CourseID
and StudScore>=60
group by StudInfo.StudNo,StudInfo.StudNameselect StudInfo.StudNo 学号,StudInfo.StudName 姓名,count(*) 专业课门数,sum(CourseCredit) 专业课学分
from StudInfo,StudScoreInfo,CourseInfo
where StudScoreInfo.CourseID='C101' and StudInfo.StudNo=StudScoreInfo.StudNo and StudScoreInfo.CourseID=CourseInfo.CourseID
and StudScore>=60
group by StudInfo.StudNo,StudInfo.StudName
2019年05月30日 03点05分 2
level 4
SELECT Z.学号,
ISNULL(A.姓名,B.姓名) AS '姓名',
ISNULL(A.基础课门数,0) AS '基础课门数',
ISNULL(A.基础课学分,0) AS '基础课学分',
ISNULL(B.专业课门数,0) AS '专业课门数',
ISNULL(B.专业课学分,0) AS '专业课学分' FROM (
SELECT 学号 FROM dbo.Table_A
UNION
SELECT 学号 FROM dbo.Table_B
)Z
LEFT JOIN dbo.Table_A A ON z.学号=A.学号
LEFT JOIN dbo.Table_B B ON z.学号=B.学号
Table_A Table_B 分别是你的两个查询的sql语句
2019年05月30日 03点05分 3
嗯嗯,谢谢大佬[太开心]
2019年05月30日 03点05分
level 9
找我
2019年05月30日 05点05分 4
level 2
使用UNION
2019年05月31日 03点05分 6
1