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

Откуда:
Сообщений: 9
Доброго времени суток.

Имеется в наличии таблица вида:

id day
111 3
111 4
222 1
222 3
222 N
333 1
333 1
444 1
444 2
444 3
444 4

Поле day принимает значения в пределах календарного месяца.Пусть конец месяца это N.
Поле id может присутствовать в определённую дату day,а может не присутcтвовать(т.е. количество одинаковых id может быть от 1 до N).

Вопрос: как из такой таблицы получить другую таблицу вида:

день месяца
id 1 2 3 4 … N
111 0 0 1 1 … 0
222 1 0 1 0 … 1
333 1 1 0 0 … 0
444 1 1 1 1 … 1

,где поле id уникально ,а заполняются поля с номером дня месяца либо "1",если id есть в исходной таблице в данную дату,либо "0",если в данную дату его нет?
19 сен 12, 14:46    [13189434]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сгруппировать данные  [new]
Glory
Member

Откуда:
Сообщений: 104760
PIVOT
19 сен 12, 14:50    [13189479]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сгруппировать данные  [new]
readerror
Member

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

С Pivot все отлично получается,за исключением того, что поле id не становится уникальным.
P.S. я не могу придумать как сгруппировать данные так, как мне нужно.
19 сен 12, 14:59    [13189580]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сгруппировать данные  [new]
Glory
Member

Откуда:
Сообщений: 104760
readerror
С Pivot все отлично получается,за исключением того, что поле id не становится уникальным.

А Pivot и не делает уникальность.Pivot делает "разворот" таблицы
19 сен 12, 15:01    [13189605]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сгруппировать данные  [new]
readerror
Member

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

В этом и заключается вопрос, а не в том как развернуть таблицу.
19 сен 12, 15:03    [13189619]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сгруппировать данные  [new]
Glory
Member

Откуда:
Сообщений: 104760
Пример из хелпа
Наверное вы его случайно не увидели

SELECT VendorID, [250] AS Emp1, [251] AS Emp2, [256] AS Emp3, [257] AS Emp4, [260] AS Emp5
FROM 
(SELECT PurchaseOrderID, EmployeeID, VendorID
FROM Purchasing.PurchaseOrderHeader) p
PIVOT
(
COUNT (PurchaseOrderID)
FOR EmployeeID IN
( [250], [251], [256], [257], [260] )
) AS pvt
ORDER BY pvt.VendorID;
19 сен 12, 15:09    [13189682]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сгруппировать данные  [new]
readerror
Member

Откуда:
Сообщений: 9
Glory
Пример из хелпа
Наверное вы его случайно не увидели

SELECT VendorID, [250] AS Emp1, [251] AS Emp2, [256] AS Emp3, [257] AS Emp4, [260] AS Emp5
FROM 
(SELECT PurchaseOrderID, EmployeeID, VendorID
FROM Purchasing.PurchaseOrderHeader) p
PIVOT
(
COUNT (PurchaseOrderID)
FOR EmployeeID IN
( [250], [251], [256], [257], [260] )
) AS pvt
ORDER BY pvt.VendorID;


Спасибо Вам.Буду внимательнее
19 сен 12, 16:01    [13190267]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить