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) MAX 값과 join 하기  (0) 2017.04.13
(MSSQL) Sequence  (0) 2017.04.13
(MSSQL) 트리거 (Trigger)  (0) 2017.04.13
(MSSQL) TOP(N) 데이터 몇건만 가져오기  (0) 2017.04.13

+ Recent posts

티스토리 툴바