데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
SELECT
'고객번호(사내)' = A.CUSTID,
'고객번호(웹)' = A.MEM_CUSTID,
'고객명' = A.mem_Name,
'고객명(내부)' = A.custname,
'사업자명' = A.CorporateName ,
'전화번호' = isnull(mem_tel,''),
'핸드폰' = MEM_MOBILE,
'사업자NO' = REGNO,
'등록일' = REG_DATE,
'담당부서' = (CASE WHEN A.MASTERCUST = '4811' THEN '1팀'
WHEN A.MASTERCUST = '4812' THEN '2팀'
WHEN A.MASTERCUST = '30544' THEN '3팀'
WHEN A.MASTERCUST = '5095' THEN '악성미수'
WHEN A.MASTERCUST = '23543' THEN '해외지사'
WHEN A.MASTERCUST = '17624' THEN '4. 방문'
WHEN A.MASTERCUST = '30251' THEN '9. 미수'
ELSE CAST(A.MasterCust AS VARCHAR)
END),
'마지막주문일' = ISNULL(B.LAST_JDATE,'주문없음'),
'12년 건수' = ISNULL(C_2012, 0),
' 매출' = ISNULL(S_2012, 0),
'13년 건수' = ISNULL(C_2013, 0),
' 매출' = ISNULL(S_2013, 0),
'14년 건수' = ISNULL(C_2014, 0),
' 매출' = ISNULL(S_2014, 0),
'15년 건수' = ISNULL(C_2015, 0),
' 매출' = ISNULL(S_2015, 0),
'16년 건수' = ISNULL(C_2016, 0),
' 매출' = ISNULL(S_2016, 0),
'17년 건수' = ISNULL(C_2017, 0),
' 매출' = ISNULL(S_2017, 0)
FROM YDR_CUST A
LEFT JOIN YDR_SALE B
ON A.CUSTID = B.CUSTID
WHERE B.LAST_JDATE > '2016-01-01'
AND A.MasterCust IN ('4811','4812','30544','17624')
AND CHARINDEX('(X)',A.mem_Name) < 1
AND A.mem_Name NOT IN (SELECT * FROM YDR_EXCP)
ORDER BY 10, 마지막주문일, 등록일
---------------------
이 쿼리를 실행하면
메시지 116, 수준 16, 상태 1, 줄 40
하위 쿼리를 EXISTS로 정의하지 않은 경우에는 SELECT 목록에서 식을 하나만 지정할 수 있습니다.
이 메시지가 뜹니다.
YDR_CUST / YDR_SALE /YDR_EXCP
세개는 임시테이블로 생성한 것입니다.
AND A.mem_Name NOT IN (SELECT * FROM YDR_EXCP)
이부분을 추가하니까 이렇게 나오는데요
뭐가 잘못된걸까요?
알려주세요1!
AND A.mem_Name NOT IN (SELECT * FROM YDR_EXCP)
을 수정하세요.
AND NOT Exists (SELECT 'x' FROM YDR_EXCP where A.mem_Name = YDR_EXCP.mem_Name)