Я использую SQL Server 2008, у меня есть набор данных, который выглядит следующим образом:SQL Server 2008 Соединить строки в колонке
FormKey Value Category
------- ----- ------
123456 Gloves PPE
123456 Hat PPE
123456 Scalf PPE
123456 Boots PPE
987654 Glasses PPE
987654 Harness PPE
987654 Overalls PPE
Я пытаюсь конкатенации значений и группы от FormKey, так что я бы в конечном итоге с:
Formkey Value Category
------- ----- -------
123456 Gloves, Hat, Scalf, Boots PPE
987654 Glasses, Harness, Overalls PPE
Однако, я получаю конкат всех значений для каждой из форм-ключей.
код я использую это:
SELECT frd.formresultkey AS frk
,STUFF((
SELECT ', ' + fra.value
FROM [FormResultAnswers] FRA
INNER JOIN [FormResultDetails] FRD ON FRA.[DetailKey] = FRD.[DetailKey]
INNER JOIN [FormResults] FR ON FRD.[FormResultKey] = FR.[FormResultKey]
WHERE FR.FormReference = 'PPE'
AND frd.FormElementReference = 'PPE_List'
FOR XML path('')
), 1, 1, '') AS Concatted
FROM [FormResultAnswers] FRA
INNER JOIN [FormResultDetails] FRD ON FRA.[DetailKey] = FRD.[DetailKey]
INNER JOIN [FormResults] FR ON FRD.[FormResultKey] = FR.[FormResultKey]
После этого мне нужно обновить таблицу с каскадным значения, где матч Formkeys. Может ли кто-нибудь помочь?
Бьюсь об заклад, вы знаете, что плохая идея иметь значения с разделителями-запятыми, хранящиеся в столбце, не так ли? –
Не могли бы вы добавить группу по formkey там – Matt
Спасибо, Matt, но результат возвращает concat каждого значения строки для каждого formresultkey, я добавил группу по frk в конце инструкции, но все равно получаю каждое значение объединяются для каждого отдельного frk. Спасибо за ваше предложение – user3735855