Проблема с для функции пути XML в SQL Server - PullRequest
0 голосов
/ 04 октября 2019

Мы работаем с 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.

Не уверен, что я что-то пропустил или достаточно ясно. Любая помощь будет оценена.

...