내 하위 쿼리 테이블에서 전체 직원 수를 계산하려고합니다. 카운트 결과가 0을 반환하지만 1을 계속 반환한다고 가정합니다.COUNT (DISTINCT()) 거짓 값을 반환합니다.
employee_id와 월 만 함께 반환하려고하면 올바른 반환 일 수는 없지만 계산을 시도 할 때마다 (명료 한), 나는 나의 반환 가치로 1 개를 얻을 것이다. 이것은 또한 CASE
식의 ELSE
절에있는 0을 계산합니다 지금이 나의 SQL
SELECT
count (distinct(CASE WHEN (x.month =5 and x.employee_id <> 0) THEN
x.employee_id
ELSE 0 END)) as test_may
FROM(
(
SELECT
h.month,
h.employee_id,
eb.employee_no,
ee.company_code,
h.amount,
h.year,
h.trx_type,
h.trx_code,
v.trx_desc,
h.frequency,
h.run_sequence
FROM
v_employee h,
v_trans v,
employee_emp ee,
employee eb
WHERE
(h.year = 2014) AND
(h.employee_id = ee.employee_id) AND
(ee.employee_id = eb.employee_id) AND
(h.employee_no = eb.employee_no) AND
(h.trx_code = v.trx_code) AND
(h.trx_type = v.trx_type) AND
(v.company_code = ee.company_code OR v.company_code is NULL) AND
(h.trx_type IN ('S','B','N','O','A','D','L'))
)
)x,
employee_emp ee,
employee eb
WHERE
(x.employee_id = ee.employee_id) AND
(ee.employee_id = eb.employee_id) AND
(x.employee_no = eb.employee_no) AND
(x.year = 2014)
MySQL은 SQL Server가 아니므로 – Jens
태그를 삭제했습니다. DISTINCT는 손상되지 않았으며 SQL 언어도 아닙니다. 당신의 데이터는 무엇입니까? 당신은 무엇을 기대했고 무엇을 얻었습니까? 1 행이 반환되면 결과는 1 –
입니다. 결과는 두 번째 쿼리에 따라 달라집니다. 직접 확인하는 것이 좋습니다. –