Объединение строк с предложением Group By в SQL Server 2008 - PullRequest
0 голосов
/ 19 февраля 2019

Ниже приведен SQL-запрос.И вывод я получаю от него.Я обеспечил желаемый результат.Пожалуйста, помогите, что я делаю не так.

select drp.vendorid,drp.GuaranteeType,drp.Guarantee_Enable,drp.Advance_Required,rtypes=stuff(
(select distinct '~' + rate_plan_type_id from ds_rate_plan drp2 where drp2.rate_plan_id = drp.rate_plan_id for xml path('')),1,1,'')
from ds_rate_plan drp
where drp.vendorid in ('00072211','00000004','00000001')
group by vendorid,drp.GuaranteeType,drp.Guarantee_Enable,drp.Advance_Required,drp.rate_plan_id

Ниже вывод, который я получаю: enter image description here

Ниже желаемый вывод:

00000001    PrePay   false   false   B2C~CPT~FPH~MOR

EDIT (по запросу): таблица и требуемый вывод.Можете ли вы, ребята, помочь сейчас?enter image description here

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

вы можете попробовать ниже путь

DECLARE @temp TABLE (vendorid int,rtype NVARCHAR(50));
INSERT INTO @temp (vendorid,rtype)
VALUES (1,'B2C'),(1,'B2C'),(1,'B2C'),(1,'CPT');


with cte as
(
select distinct * from @temp
) select distinct vendorid,STUFF((
        SELECT ',' +  rtype
        FROM cte t1
        where t1.vendorid = t2.vendorid
        FOR XML PATH('')
    ), 1, 1, '') AS Places from cte t2
0 голосов
/ 19 февраля 2019

Ваше условие корреляции должно быть на vendorid, а не rate_plan_type_id:

select drp.vendorid, drp.GuaranteeType, drp.Guarantee_Enable, drp.Advance_Required,
       stuff( (select distinct '~' + drp2.rate_plan_type_id
               from ds_rate_plan drp2
               where drp2.vendorid = drp.vendorid
               for xml path('')
              ), 1, 1, ''
            ) as rtypes
from (select distinct drp.vendorid, drp.GuaranteeType, drp.Guarantee_Enable, drp.Advance_Required
      from ds_rate_plan drp
      where drp.vendorid in ('00072211', '00000004', '00000001')
     ) drp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...