2017-11-03 14 views
-2

テーブルが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 
関連する問題