HAVING 동시만족 조건 0 3 4,689

by 손님 [SQL Query] HAVING 동시만족 동시 만족 [2010.05.28 18:07:39]


안녕하세요,
부산에서 IT 쪽 일하고 있는 사람입니다.
다름이 아니라 어딜 찾고 또 무얼 시도해봐도 안되는게 하나 있어서요.

질문드리겠습니다.

HAVING 조건에서 두가지 조건을 동시에 만족해야 합니다.
그 방법을 찾을수가 없네요.

그러니까

SELECT ...... FROM ......
GROUP BY aaa, bbb, ccc
HAVING aaa <> 2010 AND bbb <> 1

이렇게 하면 aaa 가 2010 이 아니면서 bbb 가 1 이 아닌놈을 찾게 되는데요
제가 원하는 건

aaa 가 2010 이 아닌 동시에 bbb 가 1 이 아닌놈을 찾는겁니다.

......
HAVING ((aaa <> 2010) AND (bbb <> 1))

요렇게 해봐도 안되네요. 괄호의 문제가 아닌건가요? 아님 제가 바보인건가요?
답변 부탁드립니다!!! ㅠㅠ

--------------------------------------

글을 쓰고 보니 제가 써놓고 이해가 안되네요.
그러니까 제가 원하는 건 aaa 가 2010 이고 bbb 가 1 이 아닌놈,
그리고 aaa 가 2010 이 아니고 bbb 가 1 인 놈을 검색결과에 다 포함하는거죠.
제외하고 싶은게 aaa 가 2010 이면서 bbb 가 1 인 놈입니다.
좀 나아졌나요???

by camela [2010.05.28 18:23:33]
with tb as(
select '2001' aaa, 1 bbb from dual union all
select '2002' aaa, 1 bbb from dual union all
select '2003' aaa, 1 bbb from dual union all
select '2010' aaa, 2 bbb from dual union all
select '2010' aaa, 1 bbb from dual
)
select *
from tb
where not (aaa = '2010' and bbb = 1)
;

by 질문자 [2010.05.28 18:41:11]
아 감사합니다! 근데 다른 해결방법을 찾았습니다. 조건에서 AND NOT ((aaa = 2010) AND (bbb = 1)) 로 해결이 되네요. 답변 감사합니다! 배워놓겠습니다!

by 마농 [2010.05.28 18:45:08]
쿼리를 잘못 짜신게 아니라 우리말 표현 자체를 잘못 하셨네요.
지금 하신 표현대로라면 쿼리엔 이상이 없구요.
그런데 아래에 말씀하신 조건은 위의 조건과 다르네요.
아래 말씀하신 조건이 맞을 듯 하네요.
camela 님이 잘 해주신듯 하구요. 괄호를 풀어보면 다음과 같습니다.
WHERE NOT (aaa = '2010' AND bbb = 1)
WHERE aaa <> '2010' OR bbb <> 1
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입