Pivot в oracle 10g для строки
Всем Привет,
У меня есть таблица 1:
name | sub | week|status stu1 | math | 1 | yes stu1 | eng | 1 | stu1 | sci | 1 | no stu1 | math | 2 | yes stu1 | eng | 2 | stu1 | sci | 2 | yes
Мне нужен такой стержень, как:
name | sub | week1 | week2 stu1 | math | yes | yes stu1 | eng | | stu1 | sci | no | yes
Мне нужен этот выход как для 11g, так и для 10g (что-то, что работает для обоих).
Что я уже пробовал:
У меня было требование того же вывода, только вместо " да " и " нет " были цифры
Поскольку сервер имеет 10g, мой запрос был примерно таким::
select name, sub, sum(case when week=1 then case when sub='math' then status when sub='eng' then status when sub='sci' then status end end) as week1, sum(case when week=2 then case when sub='math' then status when sub='eng' then status when sub='sci' then status end end) as week2 from(query for table1) group by name, sub;
Но здесь агрегатная функция не работает со строками " да " или "нет".
Пожалуйста, помогите!!
CHill60
У вас нет колонки под названием Оценка.
planetz
да. Этот запрос-старый, со старой таблицей. Старая таблица такая же, как и таблица 1. Но вместо столбца "статус" (varchar2) это был столбец "оценка" (число).
planetz
функция sum не будет работать со статусом, который является строкой, поэтому я не могу найти способ сгруппировать столбцы name и sub.
Richard Deeming
Чего бы вы ожидали от суммы строк "Yes"
и "No"
быть? "Yes"
, "No"
, "YesNo"
или что-то еще?
planetz
сумма-это для чисел...вот почему я искал агрегатную функцию для строки...max() работал...
planetz
Я обновил запрос с помощью настоящей таблицы.