| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > Нужно Преобразовать таблицу |
| Автор: bld 7.1.2009, 18:07 |
| Есть таблица: Name_____Date______WasPresent Имя1___03.09.2008________1 Имя1___10.09.2008________1 Имя1___17.09.2008________0 Имя2___03.09.2008________0 Имя2___10.09.2008________0 Имя2___17.09.2008________1 ............................. ............................. А надо сделать так: Name___03.09.2008___10.09.2008_____17.09.2008 Имя1______1____________1______________0 Имя2______0____________0______________1 |
| Автор: Deniel_li 21.1.2009, 17:37 |
| create table example_1 ( name varchar2(10), time_date date, was_pr number ) insert into example_1 values ('N1',to_date('03.09.2008','dd.mm.yyyy'),1); insert into example_1 values ('N1',to_date('10.09.2008','dd.mm.yyyy'),1); insert into example_1 values ('N1',to_date('17.09.2008','dd.mm.yyyy'),0); insert into example_1 values ('N2',to_date('03.09.2008','dd.mm.yyyy'),0); insert into example_1 values ('N2',to_date('10.09.2008','dd.mm.yyyy'),0); insert into example_1 values ('N2',to_date('17.09.2008','dd.mm.yyyy'),1); select name, min(decode(time_date, to_date('03.09.2008','dd.mm.yyyy'), was_pr, NULL)) as "03.09.2008", min(decode(time_date, to_date('10.09.2008','dd.mm.yyyy'), was_pr, NULL)) as "10.09.2008", min(decode(time_date, to_date('17.09.2008','dd.mm.yyyy'), was_pr, NULL)) as "17.09.2008" from ( select name, time_date, sum(was_pr) was_pr from example_1 group by name, time_date ) group by name з.ы. 1) забыл как в sql server преобразовывается дата... сорри 2) плохо то, что для написания надо точно знать кол-во новых колонок. Если задача не статическая потребуется обернуть все в функцию |
| Автор: Zloxa 21.1.2009, 18:24 | ||
http://technet.microsoft.com/ru-ru/library/ms177410.aspx |