테이블 WHERE PO_NO='1520'
AND (A_TYPE <> 'EX' AND B_TYPE <> 'POR')
1520조건이면서 값이 A_TYPE에 EX값이 아니고 B_TYPE에 POR값이 아닌것을 동시에 만족하는 로우만
출력되게 하고 싶은데 저렇게 괄호를 해놔도 결국엔 괄호가 없는거처럼 인식하네요...
컬럼 부정문 2개를 동시에 AND를 걸어서 둘다 NOT일경우만 참으로 인식하고 싶은데
조언 좀 부탁드립니다....
Comment 6
-
Terry
2015.11.02 10:59
-
개발좋아
2015.11.02 11:21
A_TYPE 값이 'EX' .B_TYPE 값이 1이면
a.A_TYPE <> 'EX'
a.B_TYPE <> 'POR'이 두가지 조건을 동시에 만족( a_type이 EX이고 b_type은 값이 1이기 때문에 제외안시키고 싶음)
할때만 제외하고 싶은게 목적이에요
결국은 로우가 A_TYPE = 'EX' 이고 B_TYPE 값이 'POR' 이라면 이 로우는 제외하고 싶은 거에요
현재는 둘중 하나라도 조건이 안맞으면 <> 이기 때문에 제외가 됩니다
-
Terry
2015.11.02 11:50
게시글에서 이야기한거랑
덧글에서 이야기하는게 좀 상반되는거 같은데요?
글을 쓰신걸로 이해했을때는 둘다 And 조건이 맞지만
덧글에서 다신 걸로 유추해보았을때는
Where 조건절을 Or 로 해야될거 같은데요?
And (
a.A_TYPE <> 'EX'
Or a.B_TYPE <> 'POR'
)
-
개발좋아
2015.11.02 12:49
댓글을 보시면
이 두가지 조건을 동시에 만족( a_type이 EX이고 b_type은 값이 1이기 때문에 제외안시키고 싶음)
할때만 제외하고 싶은게 목적이에요
△ 동시에 만족할때만 제외시킨다고 본문내용과 같이 써 놨어요~~
결국은 a.type과 b.type 둘다 부정인 조건이 동시에 충족되게 하는 것이에요 ^^
제가 표현력이 딸려서 ... ㅠㅠ
-
처리짱
2015.11.02 19:05
지금 쓰신 댓글에 적합한 표현이 질문에 올리신
WHERE PO_NO='1520'
AND (A_TYPE <> 'EX' AND B_TYPE <> 'POR')요거 입니다,, -
초짜해커
2015.11.04 11:13
벤다이어그램을 그려보시면 답이 보이실겁니다.
다른조건이 더 있는건 아닌지요?
괄호를 묶은거나 안 묶은거나 결과값은 동일하게 나와야되는데요?
제 기준에서는 전혀 이해가 되지 않는데요-_-;;;
하기 쿼리 참고바랍니다.
----------쿼리시작-----------
with tblA (PO_NO,A_TYPE,B_TYPE,qty) As
(
Select '1520','EX','POR',1 Union All
Select '1520','EX1','POR1',1 Union All
Select '1520','EX2','POR',8 Union All
Select '1520','EX','POR3',7 Union All
Select '1520','EX0','POR4',6 Union All
Select '1510','EX','POR',1 Union All
Select '1510','EX1','POR1',1 Union All
Select '1510','EX2','POR',8 Union All
Select '1510','EX','POR3',7 Union All
Select '1510','EX0','POR4',6
)
Select a.*
From tblA a
Where a.PO_NO = '1520'
And a.A_TYPE <> 'EX'
And a.B_TYPE <> 'POR'
/*
And (
a.A_TYPE <> 'EX'
And a.B_TYPE <> 'POR'
)
*/
----------쿼리끝-----------