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

Откуда:
Сообщений: 6
Добрый день, просьба подсказать, как должен выглядеть запрос, чтобы представить данные в таблице, в другом в виде.


БЫЛО:
client_id param_name param_value
1 Name Кузнецов
1 Age 25
2 Name Белов


НУЖНО:
client_id client_name client_age
1 Кузнецов 25
2 Белов NULL
9 дек 18, 15:53    [21758480]     Ответить | Цитировать Сообщить модератору
 Re: Изменения представления данных в таблице  [new]
Щукина Анна
Member

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

PIVOT
9 дек 18, 15:58    [21758482]     Ответить | Цитировать Сообщить модератору
 Re: Изменения представления данных в таблице  [new]
Kudrik
Member

Откуда:
Сообщений: 6
а можете какой то похожий пример привести
9 дек 18, 16:39    [21758499]     Ответить | Цитировать Сообщить модератору
 Re: Изменения представления данных в таблице  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36687
Kudrik,

https://docs.microsoft.com/ru-ru/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-2017
9 дек 18, 16:42    [21758501]     Ответить | Цитировать Сообщить модератору
 Re: Изменения представления данных в таблице  [new]
Kudrik
Member

Откуда:
Сообщений: 6
Как то, так только чего то не хватает
9 дек 18, 17:27    [21758519]     Ответить | Цитировать Сообщить модератору
 Re: Изменения представления данных в таблице  [new]
Kudrik
Member

Откуда:
Сообщений: 6
SELECT client_id, clien_name, client_age
FROM
(SELECT client_id, param_name AS clien_name, param_value AS client_age
FROM tab) mytable
PIVOT (SUM(client_age) FOR c client_age) mytabl
9 дек 18, 17:28    [21758521]     Ответить | Цитировать Сообщить модератору
 Re: Изменения представления данных в таблице  [new]
aleks222
Member

Откуда:
Сообщений: 849
Kudrik
Как то, так только чего то не хватает


Не хватает подумать.

1. Нафига тут pivot?
2. Если достаточно left join.
10 дек 18, 05:59    [21758732]     Ответить | Цитировать Сообщить модератору
 Re: Изменения представления данных в таблице  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30726
Kudrik
SELECT client_id, clien_name, client_age
FROM
(SELECT client_id, param_name AS clien_name, param_value AS client_age
FROM tab) mytable
PIVOT (SUM(client_age) FOR c client_age) mytabl
У вас действительно в param_name хранится имя клиента???

Внимательнее смотрите примеры.

aleks222
1. Нафига тут pivot?
2. Если достаточно left join.
Ну, если pivot не осилит, можно и джойном :-) А так что плохого в PIVOT-е
Только надо бы FULL JOIN, а не LEFT. Или может просто JOIN
10 дек 18, 18:32    [21759440]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить