복붙노트

[SQL] 두 테이블 사이의 SQL 동일한 단위는 1 개 셀에서 주문 번호를 필요로

SQL

두 테이블 사이의 SQL 동일한 단위는 1 개 셀에서 주문 번호를 필요로

나는이 개 테이블이 :

SELECT UnitId FROM dbo.tblUnits

SELECT UnitId, WorkOrderNumber FROM dbo.tblWorkOrders

나는 1 열 명으로 모니터에 다음 쉼표로 구분 된 모든 WorkOrders 모든 UnitId의 dbo.tblUnits에서 표시해야합니다.

그래서 여기에 몇 가지 샘플 데이터입니다 : dbo.tblUnits :

UnitId
123
156
178

dbo.tblWorkOrders

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

어떤 아이디어?

감사

해결법

  1. ==============================

    1.

    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
    
  2. ==============================

    2.이 시도:

    이 시도:

    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
    
  3. ==============================

    3.바로이 주제에 대한이 좋은 기사를 발견했다. 그것은 당신에게이 작업을 수행하는 다른 방법을 보여줍니다.

    바로이 주제에 대한이 좋은 기사를 발견했다. 그것은 당신에게이 작업을 수행하는 다른 방법을 보여줍니다.

    http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

  4. from https://stackoverflow.com/questions/5624592/sql-same-unit-between-two-tables-needs-order-numbers-in-1-cell by cc-by-sa and MIT license