2015-10-09 2 views
-4

У меня есть таблица, которая выглядит, как этотКак преобразовать данные из строки в столбце в SQL

enter image description here

и я хочу его, как показано ниже, как я должен делать это в SQL Server? Если я использую GROUP BY, я не могу использовать max, min функции на строках

результат Я хочу.
enter image description here

+0

Проверить поворотное концепция: https://technet.microsoft. com/en-us/library/ms177410 (v = sql.105) .aspx – Hozikimaru

+1

Возможный дубликат [Эффективное преобразование строк в столбцы в sql-сервере] (http://stackoverflow.com/questions/15745042/efficiently-convert-rows -to-columns-in-sql-server) –

ответ

1
SELECT * 
FROM TableName t 
PIVOT (MAX(Name) 
     FOR EMPLOYEETYPE 
     IN (ENGINEER, MANAGER, TECHNICIAN) 
     )p 

Так как вы уже упоминали, у вас есть соединения и некоторые другие вещи в Вашем запросе все что вам нужно сделать, это

SELECT * FROM 
(
    /* 
        Your Query here 
    just make sure it is only returning the columns shown in your question 
*/ 
)t 
    PIVOT (MAX(Name) 
      FOR EMPLOYEETYPE 
      IN (ENGINEER, MANAGER, TECHNICIAN) 
      )p 
+0

Выглядит по-моему – LearnByReading

+0

Первая таблица на самом деле является подзапросом который получает данные из 3 таблиц, присоединяя их. Добавление к нему кодов не работает –

+0

Если в проекте может быть более одного человека того же типа, вам нужно будет использовать row_number в своде. В противном случае это будет показывать только макс. по одному человеку на каждый проект –

Смежные вопросы