2014-10-27 3 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