2015-09-08 2 views
0

Мне нужен сценарий, который свяжет значения причины с помощью PLAN_ID в строке с разделителями двоеточия из следующей таблицы и помещает их в следующую таблицу, оставаясь верной для значения Order. Как это можно достичь?Какой скрипт будет конкатенировать строки и фильтровать по значению столбца?

PLAN_ID Order Reason 
6281 1  Declined 
6281 4  Unfit 
6281 8  Other 
6281 9  Monitoring 
6286 1  Declined 
6286 5  Unknown Site 
6286 10  Not Known 

PLAN_ID Reason 
6281 Declined;Unfit;Other;Monitoring 
6286 Declined;Unknown Site;Not Known 
+0

Что вы попробовали? – HABO

ответ

2

Нечто подобное ниже должно работать:

SELECT t1.plan_id, 
     STUFF((SELECT '; ' + t2.reason 
       FROM orders AS t2 
       WHERE t1.plan_id = t2.plan_id 
       FOR XML PATH('') 
      ), 1, 2, '') as reason 
FROM dbo.orders AS t1 
GROUP BY plan_id 

Вы можете вставить вывод выше ЗЕЬЕСТА в желаемую таблицу, используя простой синтаксис INSERT INTO..SELECT.

Смежные вопросы