我有2张 table :

SELECT UnitId FROM dbo.tblUnits

SELECT UnitId, WorkOrderNumber FROM dbo.tblWorkOrders

我需要显示来自 dbo.tblUnits 的所有 UnitId,然后在 1 列中显示所有由逗号分隔的 WorkOrders。

所以这里有一些示例数据:
dbo.tbl 单位:
UnitId
123
156
178

dbo.tbl 工单
UnitId WorkOrderNumber
123        1
123        2
156        4
178        5
178        9
178        10

我必须使用 tblUnits 表,因为我要从中提取更多数据,但最终结果我想显示:
UnitId   WorkOrderNumber
123         1,2
156         4
178         5,9,10

有任何想法吗?

谢谢

最佳答案

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

关于两个表之间的 SQL 相同单元需要 1 个单元格中的订单号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5624592/

10-08 23:17