2014-10-27 25 views
-1

当我对change_management表进行内部连接时,我收到了重复值。它返回三条记录,但我只想要最近的cmp.id。在SQL INNER JOIN上返回的重复值

SELECT 
cmp.id, 
cr.id, 
coalesce(cmp.effort, 0.00) AS "Effort" 
FROM 
m_change_request cr 
INNER JOIN (select max(id) as id, change_request_fk, effort from m_change_management group by id, change_request_fk, effort) as cmp ON cmp.change_request_fk = cr.id 
WHERE 
cr.release_fk=509 

我需要它通过max(cmd.id)返回最近的记录。任何想法如何解决这个问题?

回答

0

实测溶液

SELECT  
cmp.id,  
cr.id, 
cr.number AS "PSL #" 
FROM 
m_change_request cr 
LEFT JOIN m_change_management cmp ON cr.id = cmp.change_request_fk 
LEFT JOIN m_change_management cmp2 ON cr.id = cmp2.change_request_fk AND cmp.id < cmp2.id 
WHERE 
cr.release_fk=509 AND cmp2.change_request_fk IS NULL