Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Contar número de columnas con un determinado valor

Estas en el tema de Contar número de columnas con un determinado valor en el foro de Bases de Datos General en Foros del Web. Hola chicos/as, Necesito una consulta SQL para saber el número de columnas con un determinado valor en cada fila. Por ejemplo, en el ejemplo mostrado ...
  #1 (permalink)  
Antiguo 08/09/2006, 13:20
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 86
Antigüedad: 20 años, 9 meses
Puntos: 0
Contar número de columnas con un determinado valor

Hola chicos/as,

Necesito una consulta SQL para saber el número de columnas con un determinado valor en cada fila. Por ejemplo, en el ejemplo mostrado me gustaría que la consulta devolviese el número de columnas = True de cada fila. Es decir, debería devolver 3 para la fila 1 y 1 para la fila 2.

Ejemplo

Código:
           Id  Columna1  Columna2  Columna 3  Columna 4
Fila 1     1      True    True      False       True
Fila 2     2      False   True      False       False
¿Alguna idea?

Muchas gracias por adelantado,
Sergio
__________________
"Quiero saber de todo.....y no se nada"
  #2 (permalink)  
Antiguo 08/09/2006, 13:35
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Código:
select Id_Columna, 
        (case when columna1 = True Then 1 Else 0 End +  
         case when columna2 = True Then 1 Else 0 End +  
         case when columna3 = True Then 1 Else 0 End +  
         case when columna4 = True Then 1 Else 0 End ) Suma
From mitabla
Where miCondicion
o bien hacer una funcion... que acepte el campo y devuelva el 1 o 0
Código:
Select id_columna, 
         mifuncion(Columna1) + mifuncion(columna2) +mifuncion(columna3) + mifuncion(columna4) as total
From mitabla
Where micondifion
  #3 (permalink)  
Antiguo 09/09/2006, 03:51
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 86
Antigüedad: 20 años, 9 meses
Puntos: 0
Muchas gracias por la pista Andres95. Finalmente lo he hecho funcionar con IIF.

Saludos,
Sergio
__________________
"Quiero saber de todo.....y no se nada"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:25.