
¿Cómo junto datos de una UNION?
Publicado por Pablo (2 intervenciones) el 24/10/2016 21:06:34
¡¡Primero que nada buen día!!
Creo el tema porque tengo una duda con una consulta que es la siguiente:
-Tengo una base de datos con la tabla 'docente', 'asistencia' e 'inasistencia' (en estas últimas dos, está la ID del docente como foranea) y necesito hacer un JOIN entre esas tres tablas para que me muestre, para cada docente, las asistencias e inasistencias que tiene. En caso de no tener una de las dos (asistencia o inasistencia) debe devolver 0 o null. Para llevar esto a cabo hice dos JOIN individuales con docente y los uní con UNION pero me devuelve primero el primer select y después, a continuación, el segundo select, quedando algo así:
Dicho esto la duda puntual es: ¿Cómo uno la información de ambos select para que no se repitan los docentes dos veces, una vez para cada select? Imagino que con algun GROUP BY pero no se como...
Cualquier ayuda viene bien, gracias de antemano!!
Creo el tema porque tengo una duda con una consulta que es la siguiente:
-Tengo una base de datos con la tabla 'docente', 'asistencia' e 'inasistencia' (en estas últimas dos, está la ID del docente como foranea) y necesito hacer un JOIN entre esas tres tablas para que me muestre, para cada docente, las asistencias e inasistencias que tiene. En caso de no tener una de las dos (asistencia o inasistencia) debe devolver 0 o null. Para llevar esto a cabo hice dos JOIN individuales con docente y los uní con UNION pero me devuelve primero el primer select y después, a continuación, el segundo select, quedando algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
select d.apellido, d.nombre, SUM(asi.fin-asi.inicio)asistencia, null asistencia
from docente d left outer join asistencia asi
on d.cId=asi.cId AND (MONTH(asi.fecha))=(MONTH(CURRENT_DATE)) GROUP BY d.cId
UNION
select d.apellido, d.nombre, null inasistencia, SUM(ina.horaminuto)inasistencia
from docente d left outer join inasistencia ina
on d.cId=ina.cId AND (MONTH(ina.fecha))=(MONTH(CURRENT_DATE)) GROUP BY d.cId
Dicho esto la duda puntual es: ¿Cómo uno la información de ambos select para que no se repitan los docentes dos veces, una vez para cada select? Imagino que con algun GROUP BY pero no se como...
Cualquier ayuda viene bien, gracias de antemano!!
Valora esta pregunta


0