【发布时间】:2014-05-01 02:15:19
【问题描述】:
我对 SQL 很陌生,我试图根据学生是选修课时还是核心课时来获取学生所学学分的总和。我正在检查 COURSE_TAKEN 表,该表给出了他们所学的课程,然后比较所学的课程,看看它们是核心课程还是选修课,然后试图得到两个单独的总和。我最终得到了两个总和的 0,不知道为什么。
Select nvl(sum(C.Credit_Hours),0) As CoreCreditHours,
nvl(sum(C1.Credit_Hours),0) As ElectiveCreditHours
FROM COURSE C
JOIN COURSE_TAKEN ON
C.CRN = COURSE_TAKEN.CRN
JOIN COURSE C1 ON
C1.CRN = COURSE_TAKEN.CRN
WHERE C.CRN IN(
SELECT MINOR_CORE_REQUIREMENTS.CRN
FROM MINOR_CORE_REQUIREMENTS
WHERE MINOR_CORE_REQUIREMENTS.Minor_Name = 'Computer Science')
AND C1.CRN IN (
SELECT MINOR_ELECTIVE_REQUIREMENTS.CRN
FROM MINOR_ELECTIVE_REQUIREMENTS
WHERE MINOR_ELECTIVE_REQUIREMENTS.Minor_Name = 'Computer Science')
AND COURSE_TAKEN.H_Number = 1;
【问题讨论】: