SQL INNER JOIN上返回的重复值

时间:2014-10-27 14:18:39

标签: psql

当我对change_management表进行内部联接时,我收到重复的值。它返回三条记录,但我只想要最新的cmp.id。

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)返回最近的记录。我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分: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