sumar campos null y no null por id
Publicado por Antonio (4 intervenciones) el 22/02/2018 18:20:17
hola tengo una situación estoy tratando de sumar los campos null y no null por id de campo
ejemplo
campo 1 = 1 accion 1 hallazgo
campo 2 = 0 accion 0 hallazgo
campo 3 = 2 accion 2 hallazgo
solo que me manda esto
campo 1 = 3 accion 3 hallazgo
campo 2 = 3 accion 3 hallazgo
campo 3 = 3 accion 3 hallazgo
solo me suma los campos pero no me separa por id
este es mi código donde lo hago con un if
este es otro codigo donde lo hago con un case
ejemplo
campo 1 = 1 accion 1 hallazgo
campo 2 = 0 accion 0 hallazgo
campo 3 = 2 accion 2 hallazgo
solo que me manda esto
campo 1 = 3 accion 3 hallazgo
campo 2 = 3 accion 3 hallazgo
campo 3 = 3 accion 3 hallazgo
solo me suma los campos pero no me separa por id
este es mi código donde lo hago con un if
1
2
3
4
5
6
7
8
9
SELECT a.texto as titulo,b.id_pregunta,
SUM(CASE WHEN b.valor = 1 THEN 1 ELSE 0 END) AS "si",
SUM(CASE WHEN b.valor = 0 THEN 1 ELSE 0 END) AS "NO",
SUM( IF(b.id_pregunta = a.id and b.hallazgo IS NOT NULL, 1, 0)) as hallazgos,
SUM( IF(b.id_pregunta = a.id and b.Accion IS NOT NULL, 1, 0)) as acciones,
SUM( IF(b.id_pregunta = a.id and b.hallazgo IS NULL, 1, 0)) as no hallazgos,
SUM( IF(b.id_pregunta = a.id and b.Accion IS NULL, 1, 0)) as no acciones
FROM respuestas a INNER JOIN opciones b ON a.id = b.id_pregunta WHERE a.idenc = 19
GROUP BY a.id,a.texto,b.id_pregunta
este es otro codigo donde lo hago con un case
1
2
3
4
5
6
7
8
9
SELECT a.texto as titulo,b.id_pregunta,
SUM(CASE WHEN b.valor = 1 THEN 1 ELSE 0 END) AS "si",
SUM(CASE WHEN b.valor = 0 THEN 1 ELSE 0 END) AS "NO",
SUM(CASE WHEN b.hallazgo IS NOT NULL THEN 1 ELSE 0 END) AS "NO",
SUM(CASE WHEN b.Accion IS NOT NULL THEN 1 ELSE 0 END) AS "NO",
SUM(CASE WHEN b.hallazgo IS NULL THEN 1 ELSE 0 END) AS "NO",
SUM(CASE WHEN b.Accion IS NULL THEN 1 ELSE 0 END) AS "NO"
FROM respuestas a INNER JOIN opciones b ON a.id = b.id_pregunta WHERE a.idenc = 19
GROUP BY a.id,a.texto,b.id_pregunta
Valora esta pregunta
0