Мы работаем с SQL Server 2012, и, к сожалению, у нас нет возможности выполнить обновление, чтобы значительно облегчить решение этой проблемы. Мне нужно объединить несколько столбцов в столбце src
в один столбец, сгруппированный по идентификатору учетной записи, и я подумал, что понял это, но просто не могу заставить его работать правильно.
Вот чтоУ меня есть:
select distinct
a.mid,
(select ';' + a.src for xml path('')) as 'new'
from
(select
left(t.id, 5) as 'mid',
(select convert(varchar(30), t.source)) as 'src'
from
Txns t (nolock)
where
left(t.id, 5) like 'ABC%'
and t.datet > '2019-10-01'
group by
left(t.id, 5), t.source) a
group by
a.mid, a.src
Я считаю, что это почти работает, вот результат, который я получаю:
mid new
--------------
ABC00 ;0
ABC00 ;17
ABC00 ;19
ABC00 ;2
ABC00 ;23
ABC00 ;45
ABC00 ;8
ABC02 ;17
ABC03 ;23
ABC03 ;45
Я ожидаю увидеть
mid new
---------------------------
ABC00 ;0;17;19;2;23;45;8
ABC02 ;17
ABC03 ;23;45
ЕслиЯ удаляю a.src
из GROUP BY
(который, по моему мнению, изначально не был необходим), я получаю следующую ошибку:
Столбец 'a.src' недопустим в списке выбора, посколькуон не содержится ни в статистической функции, ни в предложении GROUP BY.
Не уверен, что я что-то пропустил или достаточно ясно. Любая помощь будет оценена.