세가지 테이블이 있을때
1) 하나는 메인테이블
3) 하나는 메인테이블의 서브테이블(히스토리 테이블)
3)의 메인테이블의 서브테이블은 '저장' 이라는 버튼을 눌러야지 히스토리가 INSERT됨 (처음은 INSERT, 두번째는 UPDATE(DEL_YN='Y'로)와 INSERT가 반복됨)
완료 또한 컬럼에서 YN을 N, Y로 표현하고 저장과 동일한 로직을 타게 됨
여기서 히스토리가 INSERT되기 전을 'N'으로 표기하고, 히스토리가 INSERT되고 완료전(3의 YN이 N일때)를 'N'으로
히스토리가 ISNERT되고 완료이후 (3의 YN이 Y일때)를 'Y'로 표기해야함
이럴때 CASE WHEN 구문을 써서
A.PK , ..
B.NAME, ..
CASE WHEN
(COUNT(A.PK)
FROM 서브테이블 B
WHERE 로 PK들을 맞춘뒤
AND YN의 조건 = 서브 테이블 YN의 조건 ) = 0 THEN 'N'
//어짜피 INSERT되기전에는 YN의 조건을 맞추더라도 COUNT가 0이 나올수밖에 없다!
WHEN
(COUNT(A.PK)
FROM 서브테이블
WHERE 로 메인테이블과 PK들을 맞춘뒤
AND YN의 조건 = 서브 테이블 YN의 조건 ) =
(COUNT(A.PK)
FROM 서브테이블
WHERE 로 메인테이블과 PK들을 맞춘뒤
AND YN의 조건 = 'Y' ) THEN 'Y'
ELSE 'N'
FROM 메인테이블 A
LEFT JOIN 서브테이블 B1
ON ...