me traigo vacío como valor para esos campos en esos SELECT dentro del UNION ALL. De hecho, si aceptas NULL, quizás hubiera sido mejor traerse NULL. Creo que esta consulta sería mejor. De hecho, he corregido también la suma del total, para evitar que la suma de algo con NULL dé NULL. Ahí va la última