2017-11-03 2 views
-2

두 개의 테이블이 있으므로 일부 행을 열로 변환하려고합니다. 내 데이터베이스 엔진은 Microsoft SQL Server입니다. 아래 이미지는 내가 원하는 결과를 보여줍니다.동적 열 - SQL Server 2012

View Image Tables

+4

여기에 동적 피벗 약에 너무 많은 질문이 있습니다. 그들 중 누구라도 * 보았습니까? 어떤 기법을 시도 했습니까? 그렇다면 이미 살펴본 것으로 링크 한 다음 사용하려는 시도와 작동하지 않는 링크로 연결하십시오. 이것은 "여기에 스펙이 있습니다. 나를위한 코드를 작성하십시오"라는 서비스가 아닙니다. –

+0

검색하기 '동적 피봇' – SQLChao

+0

@configbug 참고로 스페인어 버전의 stackoverflow가 있습니다.저기서 질문 할 수 있습니다. –

답변

0

귀하의 질문은 매우 명확하지 않다, 그러나 당신이 SQL PIVOT

샘플 데이터

DECLARE @tblModule TABLE(modId INT,name VARCHAR(200)) 
DECLARE @tblProfile TABLE(id INT,modId INT,profil VARCHAR(200)) 

INSERT INTO @tblModule 
SELECT 1,'Manteniminento' UNION 
SELECT 2 , 'Soporte' 

INSERT INTO @tblProfile 
SELECT 1,1,'Administrador' UNION 
SELECT 2,2 , 'Empleado' UNION 
SELECT 3,1 , 'Empleado' UNION 
SELECT 4,1 , 'Empleado' UNION 
SELECT 5,1 , 'Administrador' UNION 
SELECT 6,1 , 'Administrador' 

홈페이지 쿼리

SELECT name,SUM([Administrador]) AS Administrador, SUM([Empleado]) AS Empleado 
FROM 
(SELECT id,p.modId,m.name,p.profil 
    FROM @tblProfile p 
    INNER JOIN @tblModule m ON m.modId = p.modId) AS SourceTable 
PIVOT 
( 
COUNT(modId) 
FOR profil IN ([Administrador], [Empleado]) 
) AS PivotTable 
GROUP BY name 
을 사용할 것

결과

name   Administrador Empleado 
Manteniminento 3    2 
Soporte   0    1