Mmm si, y disculpa mi ignorancia... pero ya agregado el IFNULL a las demás variables, pero aun no soluciono mi problema... que me parece esta en estas consultas:
Código MySQL:
Ver originalSET TDeducciones
= (SELECT SUM(Monto
) FROM descuentos_empleados
WHERE (Fecha
>=FechaI
AND Fecha
<=FechaF
) AND Empleado_Id
=EmpleadoId
AND Estatus_Descuento
='Pendiente'); SET Percepciones_Comisiones
= (SELECT SUM(Comision
) FROM comisiones
WHERE (Fecha
>=FechaI
AND Fecha
<=FechaF
) AND Empleado_Id
=EmpleadoId
AND Estatus_Comision
='Pendiente'); SET Percepciones_Bonos
= (SELECT SUM(Monto
) FROM bonos
WHERE (Fecha
>=FechaI
AND Fecha
<=FechaF
) AND Empleado_Id
=EmpleadoId
AND Estatus_Bono
='Pendiente');
el procedimiento ha quedado asi:
Código MySQL:
Ver original
SET TDeducciones
= (SELECT SUM(Monto
) FROM descuentos_empleados
WHERE (Fecha
>=FechaI
AND Fecha
<=FechaF
) AND Empleado_Id
=EmpleadoId
AND Estatus_Descuento
='Pendiente'); SET Percepciones_Comisiones
= (SELECT SUM(Comision
) FROM comisiones
WHERE (Fecha
>=FechaI
AND Fecha
<=FechaF
) AND Empleado_Id
=EmpleadoId
AND Estatus_Comision
='Pendiente'); SET Percepciones_Bonos
= (SELECT SUM(Monto
) FROM bonos
WHERE (Fecha
>=FechaI
AND Fecha
<=FechaF
) AND Empleado_Id
=EmpleadoId
AND Estatus_Bono
='Pendiente'); SET Total_Percepciones
= IFNULL(Percepciones_Comisiones
, 0) + IFNULL(Percepciones_Bonos
, 0) + IFNULL(Sueldoq
, 0); SET Total_Quincena
= IFNULL(Total_Percepciones
, 0)- IFNULL(TDeducciones
, 0);
INSERT INTO Nomina
(Nomina_Id
, Empleado_Id
, Fecha_Inicial
, Fecha_Final
, Deducciones
, Percepciones
, Sueldo_Neto
, Estatus_Registro
) VALUES(NominaId
, EmpleadoId
, FechaI
, FechaF
, IFNULL(TDeducciones
, 0), IFNULL(Total_Percepciones
, 0), IFNULL(Total_Quincena
, 0), 'Activo');