2016-03-30 2 views
0

je besoin en cours d'exécution concaténation Id tout comme la course Solde ou .. Concatenate Les ID précédentes à la ligne courante Id sage tout comme montré dans l'imagesql concaténation Id dans l'ordre dans une colonne séparée comme la course totale

enter image description here

requête est

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

Quel SGBD utilisez-vous? –

+2

Sans schéma, il est très peu clair. Quoi qu'il en soit, vérifiez ** [DEMO] (http://rextester.com/RKSS5575) ** – lad2025

+0

@a_horse_with_no_name Je suppose que SQL Server basé sur SSMS screenhoot :) – lad2025

Répondre

2

Vous pouvez utiliser ci-dessous requête pour obtenir plus haut résultat.

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

Merci Gordon Linoff pour le formatage. Je suis nouveau pour empiler le débordement, donc je ne sais pas comment faire le formatage. – Ali1320