I have 2 tables:
SELECT UnitId FROM dbo.tblUnits
SELECT UnitId, WorkOrderNumber FROM dbo.tblWorkOrders
I need to display all UnitId's from dbo.tblUnits then in 1开发者_如何学Python column diplay all the WorkOrders seperated by a comma.
So here is some sample data: dbo.tblUnits:
UnitId
123
156
178
dbo.tblWorkOrders
UnitId WorkOrderNumber
123 1
123 2
156 4
178 5
178 9
178 10
I have to use the tblUnits table because I am pulling more data from it but the final result I want to show this:
UnitId WorkOrderNumber
123 1,2
156 4
178 5,9,10
Any Ideas?
Thanks
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
Try this:
SELECT
t1.UnitId,
substring((SELECT ( ', ' + WorkOrderNumber)
FROM tblWorkOrders t2
WHERE t1.UnitId= t2.UnitId
ORDER BY
UnitId
FOR XML PATH( '' )
), 3, 1000 ) as WorkOrderNumbers
FROM tblWorkOrders as t1
Found this nice article about this very topic. It shows you different way to do this.
http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/
SELECT
UnitId,
STRING_AGG(WorkOrderNumber, ',')
FROM dbo.tblWorkOrders
GROUP BY UnitId
should give you the final result you showed.
精彩评论