I eine Tabellenausgabe haben, wie folgt:Konvertieren von Zeilen in Spalten und umgekehrt für einen Teil der Tabelle in Oracle 10g
class | student | week | eng | maths | science
1 | stu1 | 1 | 67 | 78 | 89
1 | stu2 | 1 | 78 | 88 | 90
1 | stu3 | 1 | 45 | 34 | 45
1 | stu1 | 2 | 67 | 45 | 34
Und ich brauche Endausgabe als:
class | student | sub | week1 | week2
1 | stu1 | eng | 67 | 67
1 | stu1 | maths | 78 | 45
1 | stu1 | science | 89 | 34
1 | stu2 | eng | 78 | 89
1 | stu2 | maths | 88 | 90
1 | stu2 | science | 90 | 89
1 | stu3 | eng | 45 |
1 | stu3 | maths | 34 |
1 | stu3 | science | 45 |
, die in dem IS Tabelle, für nur ein Teil, Zeilen werden in Spalten umgewandelt und Spalten werden in Zeilen konvertiert.
Ich benutze Orakel 10g.
Hier ist meine Abfrage für die erste Tabelle.
select class, student,
to_char(dt,'WW') as week,
sum(case when sm.sub='eng' then 'eng' end) as eng,
sum(case when sm.sub='maths' then 'maths' end) as maths,
sum(case when sm.sub='science' then 'science' end) as science
from studentList sl left join studentMarks sm
on sl.stId=sm.stId
group by class, student, to_char(dt,'WW')
order by class, student;
Hallo ich benutze Orakel 10g. PIVOT und UNPIVOT wird in 10g nicht unterstützt. – user3471438
kann Ihnen dabei helfen: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/eac0691a-b562-450a-a522-377bbd79e14d/pivoting?forum=transactsql –