修改我的代码,使其完成另一项功能

时间:2019-05-23 06:55:41

标签: sql postgresql

SELECT p.personname,d.subjectname,d.subjectID,e.grade
from exams e
INNER JOIN students s on s.studentID = e.studentID
INNER JOIN persons p on p.idpers = s.idpers
INNER JOIN subject d ON d.subjectID = e.subjectID
INNER JOIN 
(SELECT p.personname, e.studentID, e.subjectID, e.examedate, e.grade,
 d.subjectname FROM exams e
INNER JOIN students s ON s.studentID = e.studentID
INNER JOIN persons p ON p.idpers = s.idpers
INNER JOIN subject d ON d.subjectID = e.subjectID
WHERE e.grade>=5  AND s.studentID= 'RSL333444') X ON X.subjectID = 
e.subjectID
WHERE e.grade>=5 AND x.subjectID=e.subjectID
GROUP BY p.personname,d.subjectname,d.subjectID,e.grade

我希望上面的查询基本上向我显示所有通过至少次考试的学生,其中studentID= 'RSL333444'通过了考试。此查询有两个问题。首先是,如果有另一个学生studentID= 'RSL333444'仅通过了一次一项考试,他会出现,但我需要确保他们至少通过了两项{ {1}}通过了(如果没有更多的话)。第二点是,即使有些学生通过了其他考试,这些考试也不会出现在列表中。该列表仅显示studentID= 'RSL333444'也通过的考试的及格分数,而不显示其他。我可以尝试提供一些示例数据库,但我不确定如何做到这一点。

0 个答案:

没有答案