-2
テーブルが2つあるため、一部の行を列に変換したい。私のデータベースエンジンはMicrosoft SQL Serverです。下の画像は私の望む結果を示しています。動的な列 - SQL Server 2012
テーブルが2つあるため、一部の行を列に変換したい。私のデータベースエンジンはMicrosoft SQL Serverです。下の画像は私の望む結果を示しています。動的な列 - SQL Server 2012
あなたの質問はそれほど明確ではないが、あなたが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
ダイナミックピボットについてここでは上のように多くの質問があります。それらのいずれかを見ましたか?いずれかのテクニックを試しましたか?そうであれば、既に見たものにリンクして、それらを使用しようとする試みとうまくいかないものにリンクしてください。これは「ここに仕様はありません、私のためのコードを書いてください」というサービスではありません。 –
'動的なピボット' – SQLChao
@configbugを参照してください。スペイン語バージョンのstackoverflowがあります。そこに質問をしたいかもしれません。 –