2014-01-17 7 views
1

두 테이블이 있습니다. 마녀로부터 사용자와 시스템을 선택하고 소프트를 선택하고 싶습니다. 테이블 시스템 최신 타임 스탬프가있는 레코드를 선택하십시오

USER  SYSTEM   ltstamp   
======-----======----=================== 
User1  LA1  2013-05-06 11:27:26 
User2  LA2  2013-06-07 11:27:26 

둘째

: 테이블 소프트웨어

Soft  SYSTEM   tstamp2 
=====----=====------=================== 
    Av1  LA1  2013-04-06 10:27:26 
    Av2  LA1  2013-05-06 11:27:26 
    Av1  LA2  2013-04-06 10:27:26 
    Av2  LA2  2013-06-07 11:27:26 

답변

3
SELECT s.user, s.system, sw.max_tstamp, sw2.soft 
FROM 
    systems s INNER JOIN (SELECT system, MAX(tstamp2) AS max_tstamp 
         FROM software 
         GROUP BY system) sw 
    ON s.system = sw.system INNER JOIN software sw2 
    ON s.system = sw2.system AND sw.max_tstamp=sw2.tstamp2 

하십시오

소프트 기록은 최근 "tstamp2"

첫째로 일해야한다 바이올린을 보아라. here.

1

하위 요청이 필요합니다. 예를 들어 :

select * from systems 
where ltstamp = (select top 1 ltstamp from systems order by ltstamp desc) 
1

이 시도
select user, system,soft , min(tstamp2) tstamp2 from systems s inner join software w on s.SYSTEM=w.SYSTEM group by user

관련 문제