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