두개 테이블 값을 비교하여... 0 8 642

by 정우성 [2018.03.05 13:47:54]


A는 승인 테이블

B는 제외테이블

이 있습니다

 

이 두개 테이블을 참조하여 값이 있으면

승인 Y표시하는데하는데. 

제외 테이블에 더 최신데이터 값이 있으면. 

N로 표시 할려고 합니다.  

두개 테이블 참조하여. 더 최신 날짜를 사용해서 컬럼에. 최신값을 넣고 싶습니다.  고수님들 도움 부탁드리겠습니당

by 우리집아찌 [2018.03.05 13:59:07]

max() over() 사용하시면 될것같습니다.  


by 마농 [2018.03.05 14:05:21]

테이블 구조 및 PK 정보를 알려주세요.


by 정우성 [2018.03.05 15:17:09]

A승인테이블    

Pk 원부번호. Varchar(10)  

결재일 char(8)

 

B제외테이블

Pk 원부번호 varchar(10)

결재일 char(8)


by 정우성 [2018.03.05 15:17:53]

Union해서 decode 처리 하면 될까요?  음


by 김용한 [2018.03.05 15:22:54]

두개로 나눈이유가멀까요?

한개로 하는게 더 효율적이지않나요?


by 마농 [2018.03.05 15:42:12]
WITH 승인테이블 AS
(
SELECT 1 원부번호, '20180101' 결재일 FROM dual
UNION ALL SELECT 2, '20180102' FROM dual
UNION ALL SELECT 3, '20180103' FROM dual
)
, 제외테이블 AS
(
SELECT 1 원부번호, '20171231' 결재일 FROM dual
UNION ALL SELECT 3, '20180304' FROM dual
)
SELECT a.원부번호
     , a.결재일
     , b.결재일 제외일
     , CASE WHEN a.결재일 < b.결재일 THEN 'N' ELSE 'Y' END 승인
  FROM 승인테이블 a
  LEFT OUTER JOIN 제외테이블 b
    ON a.원부번호 = b.원부번호
 ORDER BY 원부번호
;

 


by 정우성 [2018.03.05 16:16:26]

값이 없는 경우도 있거든요.  

 

둘중에 하나만 있을수도 있고 둘다 없을수도 있고


by 마농 [2018.03.05 16:30:09]

1. A 에 있는데 B 에 없는 경우는 ==> 표시해 드렸고.
2. A 에 없는데 B 에 있는 경우도 있나요? ==> 없을 것 같은데?
3. 둘 다 없는 경우도 표시해야 하나요? ==> 어떻게?

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