So that you know who to pester for results!
select Paper_Code, count(*) from Enrolment inner join Paper using (Paper_Code, Year, Period_Code) where Year = YYYY and Period_Code = 'X#' and Enrolled_At_End and Visible group by Paper_Code having count(*) > 0 order by Paper_Code;
This is handy if you want to send them a congratulations letter or similar.
select Student_ID, Surname || ', ' || Othernames as Name, String_Agg(Enrolment.Paper_Code || ' (' || Result || ')', ', ') as Papers from Enrolment inner join Student using (Student_ID) inner join Paper using (Paper_Code, Year, Period_Code ) where Year = YYYY and Result >= 90 and Visible group by Student_ID, Name order by Name, Student_ID;