이미 전 질문글에서 CASE WHEN을 쓰는 문제를 적용했는데요
문제가 좀 있어서 질문드립니다.
제 쿼리는
SELECT * FROM {데이터테이블} WHERE
날짜 = '날짜'
AND 아이디 IN ( CASE WHEN
(SELECT COUNT(*) {아이디테이블} WHERE 날짜='날짜' AND 키값='키값') > 0 /* 아이디테이블에 키값에 대한 필드가 있다면
THEN
(SELECT 아이디 FROM {친구테이블} WHERE 날짜='날짜' AND 친구아이디= '아이디') /* 이부분에서 조회 결과가 1개가 아닙니다.(에러가 나는듯..)
ELSE
'TEST'
END)
-------------------------------------------------------------------------
1. 아이디 테이블에서 키값에 맞는 아이디가 존재하는지 검색
2. 키값에 맞는 아이디가 존재한다면 친구테이블에서 아이디를 친구로 가지고 있는 모든 필드의 아이디 값을 추출
3. 추출된 여러개의 아이디를 IN으로 연결하여 데이터 테이블의 해당 아이디 자료를 모두 검색
이런 절차입니다.
빨간부분 처럼 에러 메세지가:: 결과값이 1개가 아니라고 하는데 어떤 방법으로 처리해야할지 궁금합니다.
항상 도움만 받아서 죄송하구요... 도움 부탁드립니다. |