(급)두 테이블 비교 문의 0 3 1,108

by 널라리 [SQL Query] [2015.03.10 10:11:10]


두 개의 테이블이 있습니다.

om라는 테이블에 등록일자가 있고
od라는 테이블에도 등록일자가 있습니다.

두 테이블을 비교 해서 om테이블의 등록일자에 등록된 데이터만 가져와야 하는데
od테이블의 등록일자 이후에 등록데이터만 가져올려구 하는데 어떻게
조인해야 할까요?

두 테이블의 서로 키는 kid입니다.

쿼리를 잠시 보면 end_date+1를 한건 이 컬럼의 다음날 등록된것만 가져올려 넣었습니다.

 

select om.kid from obumanager om, obumodel od
    where od.srdate in (
                     select end_date+1 from od.obumodel
                        where om.kid = od.kid
                    )
;

by 신이만든짝퉁 [2015.03.10 10:56:01]
WITH T1 AS
     (SELECT 1 KID, TO_DATE('20150101', 'YYYYMMDD') REGDATE
        FROM DUAL
      UNION ALL
      SELECT 2 KID, TO_DATE('20150102', 'YYYYMMDD') REGDATE
        FROM DUAL)
   , T2 AS
     (SELECT 1 KID, TO_DATE('20150102', 'YYYYMMDD') REGDATE
        FROM DUAL
      UNION ALL
      SELECT 2 KID, TO_DATE('20150102', 'YYYYMMDD') REGDATE
        FROM DUAL)
SELECT *
  FROM T1, T2
 WHERE T1.KID = T2.KID AND T2.REGDATE >= T1.REGDATE + 1;

이런 쿼리를 원하시는 건가요?


by 널라리 [2015.03.10 13:19:19]

제가 원한건 이거는 아니구요. obumodel테이블에서 startdate기준시점이후에 obumanager테이블의 srdate로 등록된 데이터를 알고 싶어서 문의한겁니다.

예)startdate='20140101'로 되어 있으면 srdate='20150308'이라면 2014년 1월 2일부터 2015년 3월 8일까지 등록된 테이터 정보를 알고 싶다는 말하는겁니다.


by 창조의날개 [2015.03.11 09:34:02]

SELECT OM.KID 
FROM OBUMANAGER OM, OBUMODEL OD
WHERE OM.KID = OD.KID
  AND STARTDATE >= TO_DATE('20140101','YYYYMMDD') + 1
  AND SRDATE < TO_DATE('20150308','YYYYMMDD') + 1
;

질문하신 내용으로는 위 쿼리 정도로 보여 지는데요..

STARTDATE와 SRDATE가 어느 테이블에 있는가에 따라 좀 달라지겠네요..

가능하시면 실제 데이터 몇개라도 정확한 테이블 명과 컬럼명으로 알려주시고

그 경우 원하시는 출력 형태가 무엇인지 샘플로 만들어 주시면 좀더 도움이 되지 않을가 싶네요..

 

 

 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입