En un solo query asi como lo quieres no va a salir porque se cruzan los meses en el formato que los tienes tendrias que hacer:
Código SQL:
Ver originalSELECT * FROM(
SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B
WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L' AND
((A.ANO>='2013' AND A.MES >='07'))
AND
A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03')
UNION
SELECT B.COD_TRABAJADOR,B.COD_CONCEPASIST,A.ANO,A.MES,A.SEMANA,B.CANTIDAD AS HORAS
FROM RH_PLANILLA_MENSUAL_CABECERA A, RH_REGISTRO_HORAS B
WHERE A.TIP_PLANILLA='E' AND A.COD_CLASE_PLANILLA='01' AND A.FLG_STATUS_PLANILLA='L' AND
((A.ANO>='2014' AND A.MES >='08'))
AND
A.TIP_PLANILLA=B.TIP_PLANILLA AND A.NUM_CORRE_PLANILLA=B.NUM_CORRE_PLANILLA AND B.COD_CONCEPASIST IN ('AS01','HE01','HE02','HE03')
)
ORDER BY COD_TRABAJADOR,ANO,MES,SEMANA,COD_CONCEPASIST