Как я могу свернуть свои данные с помощью запроса T-SQL

#sql #sql-server #tsql

Вопрос:

Мне нужно повернуть мои данные так, чтобы классификация и торговля отображались в виде заголовков. Ниже приведен пример набора данных.

Описание Статус Номер проблемы Пользовательская метка Значение Custom_Value
Гидравлический Открыть 680 Классификация Главный
Гидравлический Открыть 680 Торговля Насосы
Электрический Закрытый 681 Классификация Незначительный
Электрический Закрытый 681 Торговля Электрический

Это мой необходимый результат:

Описание Статус Номер проблемы Классификация Торговля
Гидравлический Открыть 680 Главный Насосы
Электрический Закрытый 681 Незначительный Электрический

Ответ №1:

Простое PIVOT должно сделать свое дело

 Select *
 From  YourTable 
 Pivot ( max( Custom_Value ) for Custom_Label in ( [Classification],[Trade] ) ) pvt
 

Редактировать —

На всякий случай, если у вас есть дополнительные столбцы, не перечисленные выше… вам нужно «накормить» сводку только необходимыми столбцами.

 Select *
 From  ( Select Description
               ,Status
               ,Issue_number
               ,Custom_Label
               ,Custom_Value
         From  YourTable
        ) src
 Pivot ( max( Custom_Value ) for Custom_Label in ( [Classification],[Trade] ) ) pvt