|
sql쪽을 안한지 몇년 돼갖고 잘 기억은 안납니다만 몇자 적습니다.
쿼리를 두개 만들어서 아우터조인으로 status코드를 가져오는 방식으로 하시면 되겠네요.
쿼리a는 님 말씀대로 id를 그룹하여 가장 큰 max(date)값을 갖는 쿼리를 하나 만드시고
쿼리b는 아래 테이블 내용 전체를 select한 데이터셋..
where절에 id랑 date만 연결해주면 select a.id, a.maxdate, b.status 이렇게 가능할것 같습니다.
물론 equi-join하셔도 될거 같네요.
-locke
방태윤 님이 쓰신 글 :
: 안녕하세요?
:
: 테이블이 다음과 같은데요.
:
: SN ID DATE STATUS
: -- -- ---- ------
: 1 22 2010-01-02 A
: 2 11 2010-01-02 B
: 3 22 2010-01-03 C
: 4 22 2010-01-03 D
: 5 11 2010-01-03 E <--- 이거
: 6 22 2010-01-04 F
: 7 22 2010-01-05 G <--- 이거
:
: 여기서 각 ID 별로 DATE 가 가장 최근인 레코드를 가져오려면 어떤 방법이 있을까요?
:
: 제가 원하는 데이타는
:
: ID STATUS
: -- ------
: 11 E
: 22 G
:
: 입니다.
:
:
: select ID,max(DATE) from table_name group by ID
:
: 해봐야 STATUS 를 가져올수가 없으니.안되고...
:
: select ID,STATUS,max(DATE) from table_name group by ID 는 문법이 틀리다고 하고,,,
:
: 무슨 방법이 없을까요?
:
: 고수님들 조언 부탁드립니다.
:
: (디비는 ms sql 입니다)
|