2014-01-12 5 views
4

내가 할이 내가 더 큰 SQL 문자열에 충실 PHP에서select 명령문에서 0으로 나눗셈을 처리하는 방법은 무엇입니까?

$query4 = "(
       SELECT count(*) 
       FROM checklist c 
       JOIN task AS t ON t.id = c.task_id AND t.active=1 
       WHERE c.placement_id = m.id 
       )/(
       SELECT count(*) 
       FROM task 
       WHERE active = 1 
       )"; 

. 문제는 위의 두 번째 선택, 0 수 있습니다. 0 인 경우 나누기 1 자동으로 (전체 query4 같이 1) 원하는.

누구든지이 작업을 수행하는 방법을 알고 있습니까?

감사합니다. 귀하의 경우에는

답변

3

는 간단한 변화는 아마도 이것이다 :이 NULL0 값을 대체합니다

$query4 = "(
      SELECT count(*) 
      FROM checklist c 
      JOIN task AS t ON t.id = c.placement_id AND t.active=1 
      WHERE c.placement_id = m.id 
      )/(
      SELECT (case when count(*) > 0 then count(*) end) 
      FROM task 
      WHERE active = 1 
      )"; 

- 그래서 분할 대신 오류로 NULL를 반환합니다.

+0

좋은 결과입니다. 감사합니다. – omega