안녕하세요, 고수님들의 도움을 바랍니다
| A창고 | 비품1 |
| 비품2 | |
| 비품3 | |
| B창고 | 비품1 |
| 비품2 | |
| C창고 | 비품2 |
| 비품3 | |
| 비품4 | |
| 비품5 |
1조건 : 비품1 있는 창고
: 결과 -> A창고, B창고
2조건 : 비품1 AND 비품3 둘다 있는 창고
: 결과 -> A창고
2번 조건에서 잘 안풀리네요....
고수님들 부탁드립니다~~~
WITH TMP AS (
SELECT 'A창고' "창고", '비품1' "비품" FROM DUAL UNION ALL
SELECT 'A창고' "창고", '비품2' "비품" FROM DUAL UNION ALL
SELECT 'A창고' "창고", '비품3' "비품" FROM DUAL UNION ALL
SELECT 'B창고' "창고", '비품1' "비품" FROM DUAL UNION ALL
SELECT 'B창고' "창고", '비품2' "비품" FROM DUAL UNION ALL
SELECT 'C창고' "창고", '비품2' "비품" FROM DUAL UNION ALL
SELECT 'C창고' "창고", '비품3' "비품" FROM DUAL UNION ALL
SELECT 'C창고' "창고", '비품4' "비품" FROM DUAL UNION ALL
SELECT 'C창고' "창고", '비품5' "비품" FROM DUAL
)
SELECT 창고
FROM TMP
WHERE 비품 IN ('비품1', '비품3')
GROUP BY 창고
HAVING COUNT(DISTINCT 비품) = 2;
앗..옙..마농님 조언 감사합니다...^^
중복이 없다면? DISTINCT 는 빼도 됩니다.
중복이 있다면? DISTINCT 필요.
역시~~마농님 감사합니다~~~