2016-11-21 3 views
1

У меня есть этот запросSQL Объединить повторяющиеся столбцы 1

select im_Call,IM_DR 
from cadw.tiburon.inmast m 
where IM_DATE < Convert(date,GETDATE()) AND IM_DATE >= DATEADD(DD, - 4,Convert(date,GETDATE())) 

который возвращает результаты, аналогичные этим

enter image description here

мне нужно принимать записи, которые highlited в желтый цвет, так я получаю результаты который будет возвращать 1 строку с номером im_Call с столбцом IM_DR, показывающим обе выделенные записи как 1 строку с 2 столбцами, подобными этому

im_Call  IM_DR 
163220023 160104238, 160104238 
+0

Я добавил тег SQL Server из-за синтаксиса. –

ответ

1

Возможно, это может помочь

Edit- Добавлено КТР сохранить объем исходного запроса

;with cte as (
    Select im_Call,IM_DR 
    from cadw.tiburon.inmast m 
    where IM_DATE < Convert(date,GETDATE()) AND IM_DATE >= DATEADD(DD, - 4,Convert(date,GETDATE())) 
) 
Select IM_Call 
     ,IM_DR = (Select Stuff((Select Distinct ',' +cast(IM_DR as varchar(25)) From cte Where IM_Call=A.IM_Call For XML Path ('')),1,1,'')) 
From (Select Distinct IM_Call From cte) A 
+0

Спасибо, Джон Каппельлетти, ваше решение было совершенным – Perry

+0

@ Perry Happy to help –

1

Вы должны сделать трюк с Для пути XML и функции Материала ,

;with cte as (

    select im_Call,IM_DR 
    from cadw.tiburon.inmast m 
    where IM_DATE < Convert(date,GETDATE()) AND 
    IM_DATE >= 
    DATEADD(DD,-4,Convert(date,GETDATE())) 

) 
    Select C1.im_Call , (Select stuff((select 
    distinct ','+cast(C2.IM_DR as varchar(20)) from cte C2 
    where c2.Im_call= C1.Im_call for xml path('')),1,1,'')) 
    as IM_DR 
    from CTE C1