Đây là một trường hợp sử dụng tốt để sử dụng tổng tích lũy.
Giả sử thứ tự của các hàng được xác định rõ ràng bởi các cột sem
và subjectcode
, như truy vấn của bạn ngụ ý, bạn có thể viết truy vấn như sau:
select *
from (select t.*,
sum(t.credit) over (order by t.sem, t.subjectcode) as credit_sum
from studyplan t
where t.matricsno = 'D031310087')
where credit_sum <= 20 -- adjust to desired number of credits
order by sem, subjectcode