Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вроде Pivot, но не он  [new]
Gagarin_74
Member

Откуда:
Сообщений: 124
Друзья!

Как из таблицы:
ФамилияКурсДата
ИвановФизика1.01.13
ИвановХимия2.01.13
ИвановРусский3.01.13
ВеревкинФизика1.01.13
ВеревкинХимия5.01.13
ОлолоеваРусский7.01.13


получить растянутую таблицу вида:

ФамилияФизикаХимияРусский
Иванов1.01.132.01.133.01.13
Веревкин1.01.135.01.13
Ололоева3.01.13


Pivot сюда вроде бы не подходит, так как там группировка должна быть.
А других мыслей у меня нет.

Подскажите пожалуйста!!!!!!!!!!!!!!!
28 мар 13, 13:50    [14107070]     Ответить | Цитировать Сообщить модератору
 Re: Вроде Pivot, но не он  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gagarin_74
Pivot сюда вроде бы не подходит, так как там группировка должна быть.

И что мешает сделать группировку ?
28 мар 13, 13:51    [14107079]     Ответить | Цитировать Сообщить модератору
 Re: Вроде Pivot, но не он  [new]
Gagarin_74
Member

Откуда:
Сообщений: 124
Glory,

По моему до меня начало доходить...
К примеру группировать с Max()
28 мар 13, 13:57    [14107128]     Ответить | Цитировать Сообщить модератору
 Re: Вроде Pivot, но не он  [new]
Gagarin_74
Member

Откуда:
Сообщений: 124
Всё равно не получается (

Select ФИО, Дата, Курс From Учеба
Pivot (Max (Дата) For Курс in ([Химия])) as q


Подскажите что не так.
28 мар 13, 14:19    [14107315]     Ответить | Цитировать Сообщить модератору
 Re: Вроде Pivot, но не он  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gagarin_74
Подскажите что не так.

Синтаксис неправильный
28 мар 13, 14:23    [14107349]     Ответить | Цитировать Сообщить модератору
 Re: Вроде Pivot, но не он  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Gagarin_74
Всё равно не получается (

Select ФИО, Дата, Курс From Учеба
Pivot (Max (Дата) For Курс in ([Химия])) as q


Подскажите что не так.

Select ФИО, [Физика], [Химия], [Русский]
From Учеба
Pivot (Max (Дата) For Курс in ([Физика], [Химия], [Русский])) as q;
28 мар 13, 14:26    [14107361]     Ответить | Цитировать Сообщить модератору
 Re: Вроде Pivot, но не он  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Gagarin_74
Подскажите что не так.
Вы же не те колонки хотите :)
declare @t table(fio nvarchar(30), kurs nvarchar(30), data nvarchar(30))
insert into @t values
(N'Иванов',	N'Физика',	'1.01.13'),
(N'Иванов',	N'Химия',	'2.01.13'),
(N'Иванов',	N'Русский',	'3.01.13'),
(N'Веревкин',	N'Физика',	'1.01.13'),
(N'Веревкин',	N'Химия',	'5.01.13'),
(N'Ололоева',	N'Русский',	'7.01.13')

Select fio, [Физика], [Химия], [Русский] From @t
Pivot (Max (data) For kurs in ([Физика], [Химия], [Русский])) as q
28 мар 13, 14:27    [14107369]     Ответить | Цитировать Сообщить модератору
 Re: Вроде Pivot, но не он  [new]
zozozozozo
Guest
Gagarin_74,

with Q
as
(
select d.*
from (values
('Иванов',	'Физика',	'1.01.13'),
('Иванов',	'Химия',	'2.01.13'),
('Иванов',	'Русский',	'3.01.13'),
('Веревкин',	'Физика',	'1.01.13'),
('Веревкин',	'Химия',	'5.01.13'),
('Ололоева',	'Русский',	'7.01.13')
) as d([Имя], [Курс], [Дата])
)
select *
from Q
	pivot (MIN([Дата]) for [Курс] in ([Физика], [Химия], [Русский])) AS W;
28 мар 13, 14:34    [14107437]     Ответить | Цитировать Сообщить модератору
 Re: Вроде Pivot, но не он  [new]
Gagarin_74
Member

Откуда:
Сообщений: 124
Друзья, помогло!

Всем доброго дня!
28 мар 13, 16:02    [14108233]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить