Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/12/2007, 08:43
Avatar de Expinete
Expinete
 
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 9 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.