J'ai 2 tables:
SELECT UnitId FROM dbo.tblUnits SELECT UnitId, WorkOrderNumber FROM dbo.tblWorkOrders
J'ai besoin d'afficher tous les UnitId de dbo.tblUnits puis dans une colonne, tous les WorkOrders séparés par une virgule.
Voici donc quelques exemples de données: dbo.tblUnits:
UnitId 123 156 178
dbo.tblWorkOrders
UnitId WorkOrderNumber 123 1 123 2 156 4 178 5 178 9 178 10
Je dois utiliser la table tblUnits parce que j'en tire plus de données mais le résultat final que je veux montrer ceci:
UnitId WorkOrderNumber 123 1,2 156 4 178 5,9,10
Des idées?
Merci
select UnitId, stuff((select ', ' + convert(varchar, WorkOrderNumber) from tblWorkOrders t2 where t1.UnitId = t2.UnitId for xml path('')), 1,2,'') WorkOrderNumbers from tblWorkOrders t1 group by UnitId
Essaye ça:
SELECT t1.UnitId, subssortingng((SELECT ( ', ' + WorkOrderNumber) FROM tblWorkOrders t2 WHERE t1.UnitId= t2.UnitId ORDER BY UnitId FOR XML PATH( '' ) ), 3, 1000 ) as WorkOrderNumbers FROM tblWorkOrders as t1
J'ai trouvé cet article sympa sur ce sujet. Cela vous montre différentes façons de le faire.
http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/