Oracle Query 조건문 조언 부탁드립니다. 0 6 932

by 에즈레인보우 [SQL Query] [2014.12.02 09:54:29]


해당월      품목명      담당자                사업장      입고량      출고량      재고량      

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

1월           죠리퐁       장그래                  서울               300          200           200      

2월           빼빼로       오과장                   대전               400          500           0         

3월           칸쵸          박과장                   대구               0              200           200      

4월           초코렛       강대리                  부산               300          200           200      

5월           빵또아       이대리                   대구               300          500           0         

6월           쵸코바        이사원                  인천               300          200           200      

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

 

SELECT * FROM TEST A

WHERE A.사업장 IN ('서울', '대전', '대구', '부산')

위의 쿼리문 조건을 만족하면서, 한가지 조건을 더 구현하고 싶습니다.

(아래 조건을 반드시 추가해야 되는 내용입니다. 위의 데이터는 일부이고 데이터양이 방대하거든요 ㅠ)

조건내용 : 위의 쿼리문처럼 대구 사업장을 출력을 해야 하나,

                사업장이 대구일 때, 입고량이 0인것은 출력에서 제외를 시키고 싶습니다 ㅠ

                조언 부탁드립니다.

 

 

 

by 부쉬맨 [2014.12.02 10:12:35]
with t as
(
select  '1월' 해당월   ,        '죠리퐁' 품목명,       '장그래' 담당자,         '서울' 사업장,              300 입고량,          200  출고량,         200 재고량 from dual union all      
select  '2월' ,          '빼빼로',       '오과장',                   '대전',               400    ,      500     ,      0  from dual union all         
select  '3월' ,          '칸쵸',          '박과장',                  '대구',               0     ,         200 ,          200  from dual union all      
select  '4월' ,          '초코렛',       '강대리',                  '부산',               300     ,     200    ,       200        from dual union all
select  '5월' ,         '빵또아',       '이대리',                   '대구',               300     ,     500   ,        0          from dual union all
select  '6월' ,          '쵸코바',        '이사원',                  '인천',               300    ,      200  ,         200       from dual
)select *
  from t
WHERE 사업장 IN ('서울', '대전', '대구', '부산')
MINUS 
select *
  from t
WHERE 사업장 = '대구'
AND 입고량 = 0

 


by 에즈레인보우 [2014.12.02 13:06:07]

이런 방법도 있었군요 감사합니다^^


by 우리집아찌 [2014.12.02 10:14:15]

EXISTS 쓰시거나 MINUS 쓰시면 될듯이요..


by 에즈레인보우 [2014.12.02 13:06:21]

넵 감사합니다!!ㅋ


by 마농 [2014.12.02 10:25:52]
-- 질문이 모호하여...
-- 1. 사업장과 상관 없이 입고량이 0 인것 제외?
SELECT *
  FROM test
 WHERE 사업장 IN ('서울', '대전', '대구', '부산')
   AND 입고량 != 0
;
-- 2. 사업장이 대구 이면서 입고량이 0 인것 제외?
SELECT *
  FROM test
 WHERE 사업장 IN ('서울', '대전', '대구', '부산')
   AND NOT (사업장 = '대구' AND 입고량 = 0)
;
SELECT *
  FROM test
 WHERE 사업장 IN ('서울', '대전', '대구', '부산')
   AND (사업장 != '대구' OR 입고량 != 0)
;

 


by 에즈레인보우 [2014.12.02 13:07:25]
SELECT *
  FROM test
 WHERE 사업장 IN ('서울', '대전', '대구', '부산')
   AND NOT (사업장 = '대구' AND 입고량 = 0)
;
 
요 예문으로 처리하니 잘되네요^^ 감사합니다!!
NOT을 이렇게도 쓸수 있다는 것을 처음 알았네요~!
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입