0

我试图competence_id从具有重复行的表中检索一些不同的行,基于:

select distinct competences.competence_id, skillmgt.* 
from competences
join skillmgt 
on competences.competence_id=skillmgt.cid
Where skillmgt.eid=121 and datename(yyyy,skillmgt.timestamp)='2013'

但它得到了所有的competence_ids 及其重复项。

4

2 回答 2

0

我想这会起作用(我猜你的一些列名):

select competences.competence_id, skillmgt.* 
from competences c
join skillmgt s
on c.competence_id=s.cid
where s.sid = (select max(sqs.sid) from skillmgt sqs where c.competence_id=sqs.cid)

你没有说你正在使用哪个版本的 SQL。如果我使用 SQL Server 2005 和更高版本执行此操作,那么我将使用稍微更优雅的 ROW_NUMBER 函数。

于 2013-04-05T11:05:06.717 回答
0

你需要分组。

select competences.competence_id, skillmgt.* 
from competences
join skillmgt 
on competences.competence_id=skillmgt.cid
group by competences.competence_id
于 2013-04-05T11:01:27.650 回答