Search code examples
sqlmysqlsql-serverdatabaset-sql

How to select students with marks less then 100 in all three subjects?


I came across this question

Here is my response to it, I just started myself learning SQL recently.

Select a.roll_number
     , a.name
     , b.roll_number 
  from student_information a
  join examination_marks b
    on a.roll_number = b.roll_number
 Group 
    by roll_number
 Having Sum(subject_one.examination_marks + subject_two.examination_marks + subject_three.examination_marks) < 100;

Solution

  • You need not to group by your result since there should be one row in each table for every roll_number. You did the join right. Now just replace group by and having clause with where condition to check whether sum of all three subject's number is less then 100 or not. If it less then hundred then select roll_number and name.

    Select a.roll_number, a.name 
    from student_information a
    inner join
    examination_marks b
           on a.roll_number = b.roll_number
    where (subject_one + subject_two + subject_three )< 100;