Sql 如何消除DUP?
我在CandidateCallHistory表中有多条记录,这似乎导致了外部应用的问题。我可能是错误的,因为它应该只获取表中最新的记录,因为它选择了top 1。尝试在选择后的第一行添加distinct:Sql 如何消除DUP?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我在CandidateCallHistory表中有多条记录,这似乎导致了外部应用的问题。我可能是错误的,因为它应该只获取表中最新的记录,因为它选择了top 1。尝试在选择后的第一行添加distinct: select C.Id as candidateId,C.Name, C.Phone, Status.ResultStatusText , Status.TimeStamp, Status.notes , (Select count(*) from CandidateC
select C.Id as candidateId,C.Name, C.Phone, Status.ResultStatusText , Status.TimeStamp, Status.notes ,
(Select count(*) from CandidateCallHistory where CandiateId = candidateId) AS numbCalls,
(SELECT SUBSTRING((SELECT ',' + Name
FROM Jobs
WHERE Id in (select value from fn_Split(c.JobIds,','))
FOR XML PATH('')),2,200000)) AS jobsList
from Candidate2 C
outer APPLY (select top 1 CH.CandiateId, CH.ResultStatusText , CH.TimeStamp , CH.notes
from CandidateCallHistory CH
where CH.CandiateId = C.Id
order by TimeStamp desc) as Status
where Status.ResultStatusText <> 'completed' and Status.ResultStatusText <> 'canceled' and c.isactive = 1
您需要提供样本数据和结果,因此我们无法理解您所说的DUP。我猜重复项在候选2中,因为您明确选择了前1。。。在派生表中,执行外部应用。一些显示重复的样本数据和结果将有助于我们理解这个问题。CandiateId=candidateId是什么?我猜CandiateId来自CandidateCallHistory,但candidateId专栏是从哪里来的?这只是掩盖了问题。解决方法是解析连接,这样就没有DUP
select distinct [...]