0
얼마나 많은 사람들이 각 질문에 대답했는지 보여주는 막대 그래프를 출력하는 간단한 응답 추적 응용 프로그램을 구성하고 있습니다. 각 차트의 경우 각 열의 MySQL 합계와 모든 열의 합
a_id q_id a_option_1 a_option_2 a_option_3 a_option_4
1 1 NULL NULL 1 NULL
2 1 NULL 1 NULL NULL
3 1 1 NULL NULL NULL
4 1 1 NULL NULL NULL
5 2 NULL 1 NULL NULL
6 2 1 NULL NULL NULL
7 2 1 NULL NULL NULL
8 2 1 NULL NULL NULL
, 내가하고 있어요 : 각 옵션의 대답하지만
sum(a_option_1) + sum(a_option_2) + sum(a_option_3) + sum(a_option_4) as total
이있는 경우 잘 작동
SELECT sum(a_option_1) as a_1, sum(a_option_2) as a_2, sum(a_option_3) as a_3, sum(a_option_4) as a_4, sum(a_option_1) + sum(a_option_2) + sum(a_option_3) + sum(a_option_4) as total FROM interactive_answers WHERE q_id = x
은 아무것도 출력하지 않습니다 경우 일부 옵션 가치가 없어.
계정을 작성하려면 어떻게해야합니까?
먼저 홍당무로 SUM (COALESCE (a_option_1, 0))과 같이 COALESCE를 사용하십시오. COALESCE는 정의 된 숫자를 방정식에 삽입하는 첫 번째 널 (null)이 아닌 인수를 리턴합니다. – bishop
[가능한 값이 없으면 MySQL에서 SUM 함수를 '0'으로 반환하려면 어떻게합니까?] (http://stackoverflow.com/questions/7602271/how-do-i-get-sum-function- mysql-to-return-0-if-no-values-are-found) – Noel
또는 IFNULL (fieldname, 0)을 사용하여 null 대신에 0을 반환합니다 (중단) –