지금까지 일련 번호별로 그룹화 된 검사 수를 더한 다음 통과 한 검사 ( 'P')의 합계를 뺀 작업 쿼리가 있습니다. 통과 횟수가 검사 횟수와 같으면 전체 통과로 간주되고 값 1을 할당합니다. 그렇지 않으면 0입니다.
SELECT IF(SUM(CASE
WHEN i.inspect_result IN ('P','F') THEN 1
ELSE 0
END) -
SUM(CASE
WHEN i.inspect_result ='P' THEN 1
ELSE 0
END)=0,1,0) as Results
FROM inspections i WHERE workorder_id=5 GROUP BY serial_no
이것은 다음과 같은 결과를 산출합니다.
-------------
Results
-------------
1
0
1
1
0
0
1
1
1
0
etc.
내가 원하는 것은 결과를 합하는 것입니다. SELECT SUM ( existing query )으로 전체 쿼리를 캡슐화하려고했지만 작동하지 않습니다.
다음 쿼리를 시도해 볼 수 있습니다.
SELECT SUM(Results)
FROM (
SELECT IF(SUM(CASE
WHEN i.inspect_result IN ('P','F') THEN 1
ELSE 0
END) -
SUM(CASE
WHEN i.inspect_result ='P' THEN 1
ELSE 0
END)=0,1,0) as Results
FROM inspections i WHERE workorder_id=5 GROUP BY serial_no
) a
다음은 간단한 SQL Fiddle 입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다