Правильное использование PIVOT в MS SQL

207
30 августа 2018, 19:30

У меня есть запрос с кучей лефтджойнов.

Создала запрос для вывода "прямых" данных, выводит:

|Номер заказа|Атрибут   |Значение|
|9213        |Формат    |20х20   |
|9213        |Количество|4       |
|9213        |Материал  |кожа    |
|9214        |Формат    |80х80   |
|9214        |Количество|1       |
|9214        |Материал  |дерево  |

Мне нужно отобразить следующим образом:

|Номер заказа|Формат|Количество|Материал|
|9213        |20x20 |4         |кожа    |
|9214        |80x80 |1         |дерево  |

Вообще не понимаю, как ПРАВИЛЬНО описать pivot, все примеры какие-то слишком простые, а у меня запрос 5 джойнами и 6 условиями. Можете, пожалуйста, на этом примере показать и описать..

Answer 1

Вот вам работающий пример:

CREATE TABLE #temp_table ([Номер заказа] int, [Атрибут] nvarchar(250), [Значение] nvarchar(250));
INSERT #temp_table
VALUES
(9213,N'Формат',N'20х20'),
(9213,N'Количество',N'4'),
(9213,N'Материал',N'кожа'),
(9214,N'Формат',N'80х80'),
(9214,N'Количество',N'1'),
(9214,N'Материал',N'дерево');
WITH temp AS 
(SELECT * FROM #temp_table) -- сюда вставьте ваш запрос, как указал коллега
-- ниже, по сути, все что вам нужно
SELECT [Номер заказа],[Формат],[Количество],[Материал] 
FROM temp 
pivot
(
max([Значение])
for [Атрибут]
in ([Формат],[Количество],[Материал]) 
)
as pvt
DROP TABLE #temp_table

Документация: PIVOT and UNPIVOT.

READ ALSO
Арифметические операторы в SQL?

Арифметические операторы в SQL?

Никак не могу найти арифметические операторыДля того же BIGINT

246
Как выровнять все содержимое сайта по одной линии

Как выровнять все содержимое сайта по одной линии

К примеру, у меня на сайте есть хедер и какая-то контентная частьКак сделать так ,чтобы при изменении расширения экрана, и хэдэр и контент...

216
Проблемы с Font Awesome

Проблемы с Font Awesome

У меня есть статический веб-сайт там есть иконки Font-Awesome и fn-iconУ меня все нормально и с домашнего сервера и когда захожу на сайт в интернете

218
видеофон html css

видеофон html css

Помогите, пожалуйста, добавил скрипт видеофона, отображается только в IE и Mozilla, в Opere и Chrome просто стоит видео, хотя есть форматы видеоmp4

242