join 대상 테이블의 값중에
특정 컬럼이 값이 max인 데이터만을 가지고
join 하고 싶을 때 아래와 같이 사용합니다.
SQL Server 2005 이상에서는 아래와 같이
-----------------------------------------
SELECT *
FROM JOB A
OUTER APPLY
(
SELECT TOP 1 *
FROM JOBSTATUS B
WHERE B.JOBID = A.JOBID
ORDER BY B.seq DESC
) B
-----------------------------------------
그 전 버전에서는
-----------------------------------------
SELECT *
FROM JOB A
LEFT JOIN
JOBSTATUS B
ON B.ID =
(
SELECT TOP 1 ID
FROM JOBSTATUS C
WHERE C.JOBID = A.JOBID
ORDER BY C.SEQ DESC
)
-----------------------------------------
참고
http://stackoverflow.com/questions/4851949/joining-to-max-date-record-in-group
'DB' 카테고리의 다른 글
(MSSQL) 프로시저에서 " 허용 (더블커테이션) (0) | 2017.04.13 |
---|---|
(MSSQL) select procedure (OPENQUERY) (0) | 2017.04.13 |
(MSSQL) Sequence (0) | 2017.04.13 |
(MSSQL) 트리거 (Trigger) (0) | 2017.04.13 |
(MSSQL) TOP(N) 데이터 몇건만 가져오기 (0) | 2017.04.13 |