Contar valor en mas de un campo según condición

Necesito contar el valor (1) que se encuentra en dos campos y que cumpla la condición de otra tabla, ejemplo:

tabla_1 tabla_2

id,campo1,campo2 id,campo1

1 1 0 1 joaquin

2 1 1 2 joaquin

3 0 1 3 valentina

Estoy efectuando la sigiuiente consulta:

select count (m.var_1 & m.var__2 ) as total
on TABLA_1.ID=TABLA_2.ID
from TABLA_1 M
inner join TABLA_2 ES
where TABLA_2.ID='joaquin'
and (m.var_1='1' or m.var__2='2' )

Resultado: 2 (cuenta del campo1)

Pero necesito que cuente también del campo2, siendo el resultado 3

1 respuesta

Respuesta
1

Si puedes, si no es algo reservado, por ahora dejemos de lado las estructuras de las tablas existentes y las consultas ya construidas y explica el caso real en el que estás trabajando y qué necesitas hacer.

Quisiera despejar ciertas dudas que tengo, en concreto, ver si el problema puede plantearse de otro modo más sencillo.

Tengo una base de datos de evaluaciones médicas, dentro el proceso de intervención los médicos derivan a las personas a diversas especialidades pero estas cuando se hacen efectivas o ejecutadas (se agrega el valor 1), y quiero saber cuantas especialidades ya se ejecutaron?

Nota: Una persona puede tener más de una especialidad

Jotacb:

¿Quieres contar todas las veces que un mismo médico ejecutó una u otra especialidad?

Supongo que puesto que unos campos pueden valer 1 cuando fueron ejecutados, y otros 0 cuando no, para obtener la suma no es necesario seleccionarlos: sumando todos los campos en cada registro obtendrás la cantidad de ejecutados.

Campo1 campo2 campo3 campo4

1 1 0 1

Esta consulta suma todos los campos de cada registro de Tabla_1 cuyo ID coincida con algunos de los ID asociados al nombre "Joaquin" en tabla_2.

SELECT (campo1+campo2+campo3+campo4) AS ejecutados

FROM tabla_1 WHERE tabla_1.id IN

(SELECT id FROM tabla_2 where tabla_2.nombre="Joaquin")

Te daría 3 para el registro del ejemplo. No es exactamente como lo pensaste pero espero que nos hayamos acercado a la solución.

(Por cierto, hay un error, ya que no he tenido tiempo de probar la consulta. Creo que debería ser SELECT SUM(campo1+campo2+campo3+campo4) AS ejecutados.)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas