Finalmente lo resolví usando tablas temporales. Esto es lo que hice.
(lo lógico sería ponerlo en un procedimiento, no?)
Código MySQL:
Ver original#set @iniciomes = '2018-01-01 00:00:00';
#set @finmes = '2018-02-01 00:00:00';
set @iniciomes
= '2018-02-01 00:00:00'; set @finmes
= '2018-03-01 00:00:00'; set @cero
= '0000-00-00 00:00:00';
select personal_asistencia.id_personal
, concat(nombre
, ' ', apellido
) as Nombre
, entrada
, salida
, precio_hora
inner join personal
on personal.id
= personal_asistencia.id_personal
inner join personal_precio_hora
on personal_precio_hora.id_personal
= personal_asistencia.id_personal
or ((entrada
< @finmes
) and (salida
> @finmes
)) ;
update informe_horas_persona
set HorasTotales
= (
when ((entrada
< @iniciomes
) and (salida
= @cero
))
)
;
)
;