Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/07/2011, 15:05
UserCod
 
Fecha de Ingreso: octubre-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 5
Respuesta: SUM() a Campos nulos indicados a 0

Bueno, gracias a dios (a diferencia de otras ocasiones donde me tardo horas, dias y hasta semanas dependiendo el caso del problema) al parecer pude hacer que la SQL hiciese la sumatoria, solo tenia que llamar en el SUM() los campos ya validados con IIF(ISNULL(campo1)) AS CAMP1.

En vez de hacer SUM(campo1 + campo2 + ...) AS TOTAL
Debia hacerlo con los Alias AS, asi SUM(CAMP1 + CAMP2 + ....) AS TOTAL

Quedando entonces casi la misma SQL pero con un leve ajuste de nombres de campos dentro del SUM().

Código SQL:
Ver original
  1. SELECT TB1.numempleado, TB1.Nombre,
  2. IIF(ISNULL(TB1.cantHoras),0,TB1.cantHoras) AS CantHoras,
  3. IIF(ISNULL(TB1.HrsDiurna),0,TB1.HrsDiurna) AS HrsDiur,
  4. IIF(ISNULL(TB1.HrsNocturna),0,TB1.HrsNocturna) AS HrsNoct,
  5. IIF(ISNULL(TB1.HrsSabado),0,TB1.HrsSabado) AS HrsSab,
  6. IIF(ISNULL(TB1.pcf),0,TB1.pcf) AS PCF,
  7. IIF(ISNULL(TB1.pcf_ext),0,TB1.pcf_ext) AS PCF_EXT,
  8. IIF(ISNULL(TB1.pso_ponny),0,TB1.pso_ponny) AS PSO_PONNY,
  9. IIF(ISNULL(TB1.pso_comp),0,TB1.pso_comp) AS PSO_COMP,
  10. IIF(ISNULL(TB1.pso_tdc),0,TB1.pso_tdc) AS PSO_TDC,
  11. IIF(ISNULL(TB1.desc_comp_ponny),0,TB1.desc_comp_ponny) AS DESC_COMP_PONNY,
  12. IIF(ISNULL(TB2.cantidad),0,TB2.cantidad) AS CANTIDAD,
  13. SUM(CInt(CantHoras) + CInt(HrsDiur) + CInt(HrsNoct) + CInt(HrsSab) + CInt(PCF) + CInt(PCF_EXT) + CInt(PSO_PONNY) + CInt(PSO_COMP) + CInt(PSO_TDC) + CInt(DESC_COMP_PONNY) + CInt(CANTIDAD)) AS TOTAL
  14. FROM SQL_ASIGNACIONES_SECCION_2 AS TB1 INNER JOIN SQL_ASIGNACIONES_PSOJ_FINAL AS TB2 ON TB1.numempleado = TB2.numempleado
  15. GROUP BY TB1.numempleado, TB1.Nombre, TB1.cantHoras, TB1.HrsDiurna, TB1.HrsNocturna, TB1.HrsSabado, TB1.pcf, TB1.pcf_ext, TB1.pso_ponny, TB1.pso_comp, TB1.pso_tdc, TB1.desc_comp_ponny, TB2.cantidad;

En todo caso, ojala que alguien tenga un problema igual o semejante esto le pueda ayudar.

saludos.