Da der Autor nicht freundlich genug war, dem SQL zu geben, um das Schema zu erstellen, hier ist es für jeden, der die Lösung von @Eric versuchen möchte.
create table markdetails (studid, subjectid, marks);
create table student_info (studid, name);
insert into markdetails values('A1', 3, 50);
insert into markdetails values('A1', 4, 60);
insert into markdetails values('A1', 5, 70);
insert into markdetails values('B1', 3, 60);
insert into markdetails values('B1', 4, 80);
insert into markdetails values('C1', 5, 95);
insert into student_info values('A1', 'Raam');
insert into student_info values('B1', 'Vivek');
insert into student_info values('C1', 'Alex');
Hier ist eine alternative Lösung case
mit group by
verwenden.
select
si.studid,
si.name,
sum(case when md.subjectid = 3 then md.marks end) subjectid_3,
sum(case when md.subjectid = 4 then md.marks end) subjectid_4,
sum(case when md.subjectid = 5 then md.marks end) subjectid_5
from student_info si
join markdetails md on
md.studid = si.studid
group by si.studid, si.name
;
Zum Vergleich ist hier die gleiche select-Anweisung von @ Eric Lösung:
select
u.stuid,
u.name,
s3.marks as subjectid_3,
s4.marks as subjectid_4,
s5.marks as subjectid_5
from
student_temp u
left outer join markdetails s3 on
u.stuid = s3.stuid
and s3.subjectid = 3
left outer join markdetails s4 on
u.stuid = s4.stuid
and s4.subjectid = 4
left outer join markdetails s5 on
u.stuid = s5.stuid
and s5.subjectid = 5
;
Es wird interessant sein zu sehen, die man hätte besser durchführen, wenn es eine Menge von Daten ist.
dank Eric ... die querry für das Erhalten der gesamten Details zu einem student.but gut funktioniert mag ich den Inhalt und Spalten in einer table.I ändern Du hast meine Frage nicht bekommen. Ich will den Tisch wechseln. – arams
Danke ERIC ... Es funktioniert gut. – arams
@arams: Fantastisch, froh, es zu hören! Bitte upvote/markieren Sie dies als die Antwort, wenn es Ihr Problem gelöst hat! – Eric