Consulta do MS SQL Server que é dividida em outras colunas da tabela

1

Eu tenho duas tabelas:

table1 :

Manager | USER 
--------+------
John    | Tom  
John    | David
John    | Marry
James   | Henry

table2 : Agora está vazio, mas deve ser assim:

Manager | User1 | User2 | User3
--------+-------+-------+-------
John    | Tom   | David | Marry
James   | Henry | null  | null 

É possível?

    
por Sarunas Radzevicius 15.01.2016 / 13:58

1 resposta

0

Se table2 structure for corrigido como você mostrou, você poderá inserir o resultado esperado nele por uma consulta como esta:

INSERT INTO table2 (Manager, User1, User2, User3) 
SELECT
  Manager,
  MAX(CASE WHEN seq = 1 THEN [USER] END) AS User1,
  MAX(CASE WHEN seq = 2 THEN [USER] END) AS User2,
  MAX(CASE WHEN seq = 3 THEN [USER] END) AS User3
FROM (
  SELECT *,
    ROW_NUMBER() OVER (PARTITION BY Manager ORDER BY [USER]) AS seq
  FROM table1) t
GROUP BY
  Manager;

Mas, se table2 structure não for corrigido, você precisará usar o SQL dinâmico.

    
por 11.02.2016 / 22:50