2011-03-26 74 views
1

我有以下SQL查詢SQL Server的子查詢

select tt.id,substring((select ','+cn.DocumentTitle from ContractNewDocs cn,tblContract t where t.JobId = 8 AND t.Id = cn.ContractID order by cn.ContractID for xml path('')),2,200) as csv 
FROM tblContract tt,ContractNewDocs cn 
where tt.JobId = 8 AND tt.Id = cn.ContractID 
group by tt.Id 

我得到以下結果

id  cvs 
4  asss,cdddd,aaaaaaaaaaa,bbbbbbbb,cccccccccc 
6  asss,cdddd,aaaaaaaaaaa,bbbbbbbb,cccccccccc 

但結果我需要的是

id  cvs 
    4  asss,cdddd 
    6  aaaaaaaaaaa,bbbbbbbb,cccccccccc 

我在哪裏得到它錯誤?任何人都可以幫我解決這個問題嗎?

+0

可你也proive您正在運行此查詢的一部開拓創新的數據? – 2011-03-26 08:45:00

回答

2
select tt.id,substring((
    select ','+cn.DocumentTitle 
    from ContractNewDocs cn 
    where tt.Id = cn.ContractID 
    order by cn.ContractID for xml path('')),2,200) as csv 
FROM tblContract tt 
inner join ContractNewDocs cn on tt.Id = cn.ContractID 
where tt.JobId = 8 
group by tt.Id