El query lo que hace es un join de 2 selects, uno para obtener los registros "modificados" y otro para obtener los registros sin modificar, al unir estos 2 queries van a salir 2 resultados para los que tienen un registro modificado, uno con el modificado y otro con el sin modificar, pero tu ocupas que cuando haya un registro modificado entonces presente la fecha de ese registro correcto?? para eso es esta linea:
Aqui seleccina el servicio, la especialidad, el mes y cuando se cumple la condicion que ocupas (que sea un registro modificado) presenta la fecha de dicho registro.....
Código SQL:
Ver originalSELECT t2.servicio,t2.especialidad,t2.mes,CASE WHEN isnull(t1.servicio,'')<>'' THEN t1.horario ELSE t2.horario END AS horario