두개의 테이블이 있다고 가정하겠습니다.
전표 테이블
seq | 날짜 | 전표번호 | 줄번호 | 상호코드 | 상호코드2 |
1 | 15.11.05 | 1 | 1 | 100 | 101 |
2 | 15.11.05 | 1 | 2 | 100 | 102 |
3 | 15.11.05 | 1 | 3 | 101 | 103 |
4 | 15.11.05 | 1 | 4 | 103 | 100 |
5 | 15.11.05 | 2 | 1 | 101 | 102 |
6 | 15.11.05 | 3 | 1 | 102 | 103 |
상호 테이블
seq | 상호명 | 권한코드 |
100 | 가나다 | 10 |
101 | 라마바 | 11 |
102 | 사아자 | 10 |
103 | 차카타 | 12 |
해당 전표에 접근할수 있는 권한이 없는 내역을 출력하려고 합니다.
예를 들어 다음 4가지 조건이 있다고 가정하겠습니다.
1. 날짜 : 15.11.05
2. 전표번호 : 1
3. 상호코드 : 100
4. 권한코드 : 10
상호코드, 상호코드의 권한코드, 상호코드2, 상호코드2의 권한코드 총 4가지를 비교해야 하는데요
첫번째 레코드를 예를 들면....
상호코드 100 의 권한은 10이고, 상호코드2의 101 의 권한은 11 이므로,
상호코드, 상호코드2, 상호코드의 권한코드, 상호코드2의 권한코드 4가지를 모두 비교하여
하나라도 조건에 맞으면 출력이 안되고, 4가지 조건이 안맞으면 출력해야 합니다.
따라서, 전표번호 1번에 첫번째 줄은 조건이 맞으므로 출력을 안하고, 전표번호 1번에 3번째 줄만 출력하게 됩니다.
위 조건을 가지고 해당 전표에 권한이 없는 내역을 출력 예를 들면
seq | 날짜 | 전표번호 | 줄번호 | 거래처명 | 거래처명2 |
3 | 15.11.05 | 1 | 3 | 라마바 | 차카타 |
위와같이 나오도록 하려면 쿼리를 어떻게 해야할까요?
Comment 4
-
나는짱이야
2015.11.05 17:36
-
군고구마
2015.11.05 18:01
left join 을 이용해서 조인 건 다음에
where 조건에 is not null 조건 및 is null을 이용해서 추출 가능해 보여요~
-
건우아빠
2015.11.05 18:38
설명이 정말 어렵네요...
1. 날짜 : 15.11.05
2. 전표번호 : 13. 상호코드 : 100
원하는 결과는 4번 조건이 없어도 나오게 됩니다...
전표 테이블에서 1,2번에 맞는것중.. 상호코드,상호코드2에 없는것 하시면 나옵니다.
이때는 4번이 필요 없게 됩니다.
도식화 하시는게 좋을듯 합니다.. 조건이 like로 걸리는지 = 로 걸리는지...
-
뇽이
2015.11.06 11:47
답변해 주신 세분께 먼저 감사말씀 드립니다.
상호코드, 상호코드2 두가지만 체크한다면.. 간단히 해결됩니다.
상호코드에 연동된 상호테이블에 권한코드 까지 체크를 해서 상호코드와 권한코드가 해당되지 않는 라인을 확인해야 하기에
제 미천한 실력으로는 안되서 도움을 요청드린것입니다.
상호코드로 조인해서 조건 걸면되지 않나요?