2012-10-26 4 views
2

PSR이 생성 된 경우 각 프로젝트 상태 보고서 (PSR)에 대해 매월 레코드를 생성하는 테이블이 있습니다. 단일 테이블에서 각 PSR에 대한 최신 레코드를 가져와야합니다. 이것은 나에게 내가 찾고 있어요 PSR의 목록을 제공합니다여러 그룹에 대한 레코드 그룹에서 최신 달 레코드 선택

:

SELECT Max(Main.PSRMonth) AS MaxOfPSRMonth, Main.PE, Main.Loc, Main.EWO 
FROM Main 
GROUP BY Main.PE, Main.Loc, Main.EWO 
ORDER BY Main.PE, Main.Loc, Main.EWO; 

Table:Main 
Primary Key is PSRMonth + PE + EWO + LOC 

지금, 나는 위의 선택에 따라 모든 필드 FROM Main이 필요합니다. 하나의 SQL 문으로이 작업을 수행하고 싶습니다.

답변

1

위의 선택에 따라 모든 필드는 FROM Main이 필요합니다.

그런 다음이 시도 :

SELECT m1.* 
FROM Main m1 
INNER JOIN 
(
    SELECT 
     Max(PSRMonth) AS MaxOfPSRMonth, 
     PE, 
     Loc, 
     EWO 
    FROM Main 
    GROUP BY PE, Loc, EWO 
) m2 ON m1.PE = m2.PE AND m1.Loc = m2.Loc AND m1.EWO = m2.EWO 
    AND m1.PSRMonth = m2.MaxOfPSRMonth 
ORDER BY m1.PE, M1.Loc, M1.EWO;