2016-11-21 131 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

我需要的是在黄色白标明的记录,所以我得到的结果这将返回1行与im_Call编号与IM_DR列显示两个突出显示的记录为1行与这样的2列

im_Call  IM_DR 
163220023 160104238, 160104238 
+0

由于语法,我添加了SQL Server标记。 –

回答

1

也许这可以帮助

编辑 - 添加了CTE保持原有的查询

;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

谢谢John Cappelletti您的解决方案非常完美 – Perry

+0

@Perry乐于助人 –

1

你需要做的伎俩与FOR 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