어떤 이유로 where 절의 데이터 조건이 무시됩니다.SQL Server - where 절 조건이 무시됩니다.
SELECT D.[Date],
D.Year,
D.MonthName,
D.WeekOfYear,
E.bu_name,
E.emp_mgr,
E.emp_sup,
E.emp_name,
E.emp_jde,
C.calls,
s.sales
FROM DateTable AS D
CROSS JOIN EmployeeTable AS E
LEFT JOIN (SELECT CAST([start_date] AS DATE) AS call_date,
[agent_no] AS agent_id,
SUM(CASE WHEN [skill_name] LIKE '5700 Sales l%'
AND [Agent_Time] != '0' THEN 1
ELSE 0
END) AS calls
FROM CallTable
GROUP BY CAST([start_date] AS DATE),
[agent_no]
) AS C ON D.[Date] = C.call_date
AND E.emp_vcc = C.agent_id
LEFT JOIN (SELECT [AC#DTE_dt] AS sale_date,
[EMPJDENUM] AS emp_jde,
SUM(CASE WHEN [CHANNEL] = 'I'
AND ([ICGCD2] = 'L'
OR [ICGCD2] = 'H')
AND [ITMQTY] > 3
AND [EMPBUNCOD] IN ('5044','5077') THEN 1
ELSE 0
END) AS sales
FROM SalesTable
GROUP BY [AC#DTE_dt],
[EMPJDENUM]
) AS S ON D.Date = s.sale_date
AND E.emp_jde = S.emp_jde
WHERE c.calls > 0
OR S.sales > 0
AND d.Year = '2016'
이는 지저분한 검색어입니다. 이러는 것을 시도 했습니까? 'where (c.calls> 0 or S.sales> 0) 그리고 d.Year = '2016'' –
글쎄, 처음에는 지저분한 정의에 관심이 있습니까? 나는 이것에 상당히 새롭다 - 나가 할 수있는 개선이있는 경우에 나는 확실히 그 (것)들에 관하여 배우는 것을 싶을 ... – user3067478
나는 복잡한 그것을 의미했다. 게다가 데이터 구조를 보여주지 않고 샘플 입력과 예상 출력을 제공하지 않아도 문제를 해결하기가 어렵습니다. –