2016-06-12 10 views
2

アイテムタイトルと説明が別々の行に記録されたテーブルがあります。 アイテムのタイトルに説明を追加したいと思います。子タイトルをSQL Serverツリー形式テーブルの親タイトルに追加する方法

私の現在のテーブル:

Id  Type  Title     IdParent 
------ ----  -----     -------- 
1   itm  LapTop     null 
2   dsc  Dell     1 
3   dsc  1520     1 
4   dsc  15 inches    1 
5   itm  Smart Phone    null 
6   dsc  Huawei     5 
7   dsc  P7      5 

と私の必要な結果:

id  Description 
--  ----------- 
1  LapTop Dell 1520 15 inches 
5  Smart Phone Huawei P7 

この結果を得るために適切なクエリとは何ですか?

答えて

2
Declare @Table table (Id int,type varchar(25), title varchar(50),IdParent int) 
Insert into @Table (Id,type,title,IdParent) values 
(1,'itm','LapTop',null), 
(2,'dsc','Dell',1), 
(3,'dsc','1520',1), 
(4,'dsc','15 inches',1), 
(5,'itm','Smart Phone',null), 
(6,'dsc','Huawei',5), 
(7,'dsc','P7', 5) 

SELECT Id, Description = max(Title)+' ' +STUFF((
    SELECT ' ' + Title FROM @Table 
    WHERE IdParent = x.Id 
    FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '') 
FROM @Table AS x 
Where IdParent is null 
GROUP BY Id 

戻り

Id Description 
1 LapTop Dell 1520, 15 inches 
5 Smart Phone Huawei P7 
+0

私は小さなねじれが、私はあなたが可変の深さの階層を処理したと思います要求されるであろうことを追加する必要があります –

関連する問題