어떻게 내가 다시 쓰기는 다음과 같은 오류가 실행되지 않도록이 쿼리를 ". 집계 또는 하위 쿼리가 포함 된 식에서는 집계 함수를 수행 할 수 없습니다"SUM CASE를 사용하는 경우 SELECT
이을
SELECT
employees.loc_id
,SUM(CASE
WHEN
pos IN (SELECT DISTINCT pos FROM lookup WHERE lbl='Staff')
AND
loc IN (SELECT DISTINCT loc FROM lookup WHERE lbl='Staff')
THEN 1
ELSE 0
END) AS 'Staff Site 1'
,SUM(CASE
WHEN
pos IN (SELECT DISTINCT pos FROM table WHERE lbl='Staff')
AND
loc IN (SELECT DISTINCT loc FROM table WHERE lbl='Staff')
THEN 1
ELSE 0
END) AS 'Staff Site 2'
FROM table GROUP BY table.key_id ORDER BY key_id
그래서 분명히 내가 SUM
내 SELECT
문을 넣을 수없는 이유는 무엇입니까? 위의 코드에 설명 된 사례에 대해서만 합산 할 수 있도록하려면 어떻게해야합니까?
pos
은 위치 유형을 결정합니다. loc
은 어떤 사이트 (위치)에서 결정합니다. 룩업 테이블은 다음과 같이 구성된다 :
pos | loc | lbl
123 | XYZ | Staff Site 1
456 | XYZ | Staff Site 1
987 | XYZ | Supervisor Site 1
123 | ABC | Staff Site 2
123 | JKL | Staff Site 3
123 | OPQ | Staff Site 4
456 | OPQ | Staff Site 4
345 | OPQ | Staff Site 4
이 룩업 테이블은 단순히 특정 위치의 위치와 연관된 레이블을 결정한다.
직원 테이블이 있고 각 직원에게 pos #가 지정됩니다.
그래서 나는 직원 테이블에서 모든 loc_id
(위치 ID)를 선택 내 쿼리를 원하고, 각 loc_id
, 나는이 pos=123
와 loc_id=XYZ
30 명의 직원이 있다면
그래서 조회 테이블에서 각각의 항목을 요약 및 loc_id=XYZ
20 명 직원 pos=456
으로, 출력은 사전에
loc_id | Staff Site 1
XYZ | 50
감사합니다 것, 나는 ...이 너무 복잡하지 않았다 희망
이것이 OP가 반환하려고하는 결과를 반환하는 것으로 의심되지만 정확한 사양을 결정하는 것은 어렵습니다. +10 "키보드에서 손가락을 떼어 내고, 천천히 뒤로 물러나서, 우리가 성취하고자하는 것에 대해 생각하고 설명하는 방법을 ..." – spencer7593
화려한 매트. 고맙습니다. – blacksaibot