2016-03-30 33 views
0
Sadece bakiyesi veya toplam çalışan gibi Id birleştirme çalışan gerek

.. bitiştirmek akıllı mevcut Id satıra önceki noları resmin hemenSQL Id birleştirme

enter image description here

görüldüğü şekilde

sorgu

with relation (Id, [orderSequence]) 
as 
( 
select Id,cast(Id as varchar(20)) 
from [ACChartofAccount] 

union all 
select p.Id, cast(Cast(r.Id as varchar) + ',' + cast(p.Id as varchar) as varchar(20)) 
from [ACChartofAccount] p 
inner join relation r on p.ParentId = r.Id 
) 

select Id,orderSequence 
from relation 
order by orderSequence 
+1

Hangi DBMS'yi kullanıyorsunuz? –

+2

Şema olmadan çok belirsizdir. Her neyse check ** [DEMO] (http://rextester.com/RKSS5575) ** – lad2025

+0

@a_horse_with_no_name SSMS screenhoot tabanlı SQL Server'ı tahmin ediyorum :) – lad2025

cevap

2

Sen sonucunda yukarıda almak için sorgu altında kullanabileceği başka.

DECLARE @Table TABLE(ID VARCHAR(10)); 
INSERT INTO @table(ID) VALUES ('320'),(332),(333),(334),(335); 
SELECT mt.ID, 
    STUFF(( 
     SELECT ', ' + ID 
     FROM @table t 
     WHERE t.ID <= mt.ID 
     FOR XML PATH('')), 1, 2, '') AS oldersequence 
FROM @table mt 
ORDER BY ID 
+0

Biçimlendirme için teşekkürler Gordon Linoff. Ben taşma yığmak için yeni, bu yüzden biçimlendirme yapmak bilmiyorum. – Ali1320