У меня есть таблица, которая выглядит, как этотКак преобразовать данные из строки в столбце в SQL
и я хочу его, как показано ниже, как я должен делать это в SQL Server? Если я использую GROUP BY
, я не могу использовать max, min функции на строках
У меня есть таблица, которая выглядит, как этотКак преобразовать данные из строки в столбце в SQL
и я хочу его, как показано ниже, как я должен делать это в SQL Server? Если я использую GROUP BY
, я не могу использовать max, min функции на строках
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
Выглядит по-моему – LearnByReading
Первая таблица на самом деле является подзапросом который получает данные из 3 таблиц, присоединяя их. Добавление к нему кодов не работает –
Если в проекте может быть более одного человека того же типа, вам нужно будет использовать row_number в своде. В противном случае это будет показывать только макс. по одному человеку на каждый проект –
Проверить поворотное концепция: https://technet.microsoft. com/en-us/library/ms177410 (v = sql.105) .aspx – Hozikimaru
Возможный дубликат [Эффективное преобразование строк в столбцы в sql-сервере] (http://stackoverflow.com/questions/15745042/efficiently-convert-rows -to-columns-in-sql-server) –