Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужно Преобразовать таблицу, Sql server 2008 
:(
    Опции темы
bld
Дата 7.1.2009, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 7.1.2009

Репутация: нет
Всего: нет



Есть таблица:


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
PM MAIL   Вверх
Deniel_li
Дата 21.1.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 6.12.2007

Репутация: нет
Всего: 1



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) плохо то, что для написания надо точно знать кол-во новых колонок. Если задача не статическая потребуется обернуть все в функцию
PM MAIL   Вверх
Zloxa
Дата 21.1.2009, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161





--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.