-1

I have 2 tables one contain students name and id students

StdID | StdName
  1   |  'John'

the seconed contain each subject result in a row

stdresults

StdID  | SubjectID | SubjectName | Degree
 1     |      1    |   'English' |  90
 1     |      2    |   'Math'    |  86

I want the result to be like this

StdID | StdName | Subject1Degree | Subject2Degree | Subject ... Degree
  1      'John'         90               86            ....

Whatever was the number of subject

Gordon Linoff
  • 1,242,037
  • 58
  • 646
  • 786

1 Answers1

0

Try this:

SELECT T1.STDID,
       T1.STDNAME,
       SUM(CASE WHEN (T2.SUBJECTNAME = 'ENGLISH' AND T2.SUBJECTID = 1) THEN 
              T2.DEGREE  ELSE 0 END) AS SUBJECT1DEGREE,
       SUM(CASE WHEN (T2.SUBJECTNAME = 'MATH' AND T2.SUBJECTID = 2) THEN 
             T2.DEGREE ELSE 0 END)AS SUBJECT2DEGREE
FROM STUDENTS T1, STDRESULTS T2
GROUP BY T1.STDID;

Demo

S_sauden
  • 302
  • 2
  • 10