如果您使用的是Sql Server,这里有一种使用Pivot的方法
SELECT course.offering_dept,
course.course_number,
course.course_name,
[A],[B],[C],[D],[F]
FROM eb.course,
eb.grade_report
JOIN eb.section
ON grade_report.section_id = section.section_id
PIVOT (Count(grade_report.student_number)
FOR GRADE IN ([A],[B],[C],[D],[F])) pv
其他的
SELECT course.offering_dept,
course.course_number,
course.course_name,
sum(CASE WHEN GRADE = 'A' THEN 1 ELSE 0 END) as 'A',
sum(CASE WHEN GRADE = 'B' THEN 1 ELSE 0 END) as 'B',
sum(CASE WHEN GRADE = 'C' THEN 1 ELSE 0 END) as 'C',
sum(CASE WHEN GRADE = 'D' THEN 1 ELSE 0 END) as 'D',
sum(CASE WHEN GRADE = 'F' THEN 1 ELSE 0 END) as 'F'
FROM eb.course,
eb.grade_report
JOIN eb.section
ON grade_report.section_id = section.section_id
GROUP BY course.offering_dept,
course.course_number,
course.course_name
ORDER BY course.course_number;