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

Sumar campos booleanos

Estas en el tema de Sumar campos booleanos en el foro de SQL Server en Foros del Web. Hola a tod@s, vengo en busca de la sabiduría de los expertos de este foro... os explico, he heredado una select ... en concreto esta: ...
  #1 (permalink)  
Antiguo 12/12/2007, 08:43
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 7 meses
Puntos: 3
Sumar campos booleanos

Hola a tod@s, vengo en busca de la sabiduría de los expertos de este foro...
os explico, he heredado una select ... en concreto esta:
Código PHP:
SELECT     0 AS CodObraEmpleados.CodigoEmpleado AS codempleadoEmpleados.SubcontrataActual AS codempresaDatosPeriodo.Anio AS anio
                      
DatosPeriodo.Mes AS mesEmpleados.Nombre AS nombreEmpleados.NIF, CASE Empleados.valido WHEN 1 THEN 'Sí' ELSE 'No' END AS Recmedico,
                       CASE 
Empleados.epis WHEN 1 THEN 'Sí' ELSE 'No' END AS EPIS'' AS curseg, CASE DatosPeriodo.TC1 WHEN 1 THEN 'Sí' ELSE 'No' END AS TC1
                      CASE 
DatosPeriodo.TC2 WHEN 1 THEN 'Sí' ELSE 'No' END AS TC2'' AS curso
                      CASE 
datosperiodo.nomina WHEN 1 THEN 'Sí' ELSE 'No' END AS JusNomCategorias.Descripcion AS categoriaGETDATE() AS faltass
                      
'' AS erdiatrabajoEmpleados.FechaCursoSegSalud AS fcursoSSEmpleados.FechaReconocimientoMedicoEmpresas.Nombre AS Expr1
FROM         Empleados LEFT OUTER JOIN
                      Empresas ON Empleados
.SubcontrataAdicional Empresas.CodigoEmpresa LEFT OUTER JOIN
                      DatosPeriodo ON Empleados
.CodigoEmpleado DatosPeriodo.CodigoEmpleado AND DatosPeriodo.Mes AND 
                      
DatosPeriodo.Anio 2007 LEFT OUTER JOIN
                      Categorias ON Categorias
.CodigoCategoria Empleados.CodigoCategoria
WHERE     
(Empleados.CodigoEmpleado <> 0) AND (Empleados.SubcontrataActual 1
más maja ella que pa que... en fin, la cosa es que la tabla DatosPeriodo tiene 31 campos más (1 por día de mes) de tipo boolean y tengo que obtener el nº de ellos que estén a true, por programación se hacerlo, pero creo que sería más "sencillo" hacerlo con la misma select, si no se puede, lo programo y en paz, espero que que los conocimientos que me faltan los tengas ustedes.

Gracias por adelantado.
  #2 (permalink)  
Antiguo 12/12/2007, 09:10
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: Sumar campos booleanos

Bueno mi conocimiento se ha ampliado :
una de las formas es esta (seguro que hay mas):
Código PHP:
CAST(Dia1 AS integer) + CAST(Dia2 AS integer) + CAST(Dia3 AS integer) + CAST(Dia4 AS integer) + CAST(Dia5 AS integer) + CAST(Dia6 AS integer
                      + 
CAST(Dia7 AS integer) + CAST(Dia8 AS integer) + CAST(Dia9 AS integer) + CAST(Dia10 AS integer) + CAST(Dia11 AS integer) + CAST(Dia12 AS integer
                      + 
CAST(Dia13 AS integer) + CAST(Dia14 AS integer) + CAST(Dia15 AS integer) + CAST(Dia16 AS integer) + CAST(Dia17 AS integer
                      + 
CAST(Dia18 AS integer) + CAST(Dia19 AS integer) + CAST(Dia20 AS integer) + CAST(Dia21 AS integer) + CAST(Dia22 AS integer
                      + 
CAST(Dia23 AS integer) + CAST(Dia24 AS integer) + CAST(Dia25 AS integer) + CAST(Dia26 AS integer) + CAST(Dia27 AS integer
                      + 
CAST(Dia28 AS integer) + CAST(Dia29 AS integer) + CAST(Dia30 AS integer) + CAST(Dia31 AS integer)) AS DiasTrabajados 
parecía más dificil...
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 13:48.