私は検索しましたが、私がここでやろうとしているように具体的なものは見つかりませんでした。私は情報が必要な2つのテーブルがあります。これは、サンプル・スキーマである - 私が働いているからと類似:私はクエリを記述しようとしてるSQL - 列を行に転じる
create table Nodes(
Caption varchar(max),
IP_Address varchar(max),
NodeID varchar(max)
);
insert into Nodes (Caption, IP_Address, NodeID)
values ('dev-srvr', '10.0.0.1', '29023');
insert into Nodes (Caption, IP_Address, NodeID)
values ('prod-srvr', '10.0.2.1', '29056');
insert into Nodes (Caption, IP_Address, NodeID)
values ('test-srvr', '10.1.1.1', '29087');
create table Volumes(
Caption varchar(max),
NodeID varchar(max)
);
insert into Volumes (NodeID, Caption)
values ('29023', '/');
insert into Volumes (NodeID, Caption)
values ('29023', '/boot');
insert into Volumes (NodeID, Caption)
values ('29023', '/dev/shm');
insert into Volumes (NodeID, Caption)
values ('29023', '/home');
insert into Volumes (NodeID, Caption)
values ('29056', '/');
insert into Volumes (NodeID, Caption)
values ('29056', '/var');
insert into Volumes (NodeID, Caption)
values ('29056', '/opt');
insert into Volumes (NodeID, Caption)
values ('29087', '/tmp');
返すよう(where句で...最終版に複数のフィルタを持つことになります) Node.Caption、IP_Address、および関連付けられたすべてのVolumes.Caption(NodeIDに基づいて)。各NodeIDのVolumes.Captionのエントリ数は動的で、1から約60程度です。私が書く方法を知っているすべてはこれです:
select Nodes.Caption, Nodes.IP_Address, Volumes.Caption as Volume
from Nodes with (nolock)
inner join Volumes
on Nodes.NodeID=Volumes.NodeID
where IP_Address like '10.0%'
以下を返す:
Caption | IP_Address | Volume
---------------------------------
dev-srvr | 10.0.0.1 |/
dev-srvr | 10.0.0.1 | /boot
dev-srvr | 10.0.0.1 | /dev/shm
dev-srvr | 10.0.0.1 | /home
prod-srvr | 10.0.0.1 | /var
prod-srvr | 10.0.0.1 | /opt
しかし、私は必要可能であればNode.Caption、IP_Addressはと一致するすべてのボリュームを示すのNodeIDごとに単一の行であります。この(最終列名は重要ではありません...何もすることができます)のように:
Caption | IP_Address | Volume1 | Volume2 | Volume3 | Volume 4
----------------------------------------------------------------
dev-srvr | 10.0.0.1 |/ | /boot | /dev/shm | /home
prod-srvr | 10.0.0.1 | /var | /opt
http://stackoverflow.com/questions/13372276/simple-way-to-transpose-columns-and-rows-in-sql – McNets
可能な重複[Sqlの列と行を移す簡単な方法?](http://stackoverflow.com/questions/13372276/simple-way-to-transpose-columns-and-rows-in-sql) –