
Consulta con select anidados o Joins
Publicado por cristian (2 intervenciones) el 15/09/2016 01:21:15
Hola amigos, quisiera pedir su apoyo con lo siguiente. Tengo estas 3 consultas que funcionan perfecto separadas:
SELECT CONCAT(u.nombres, ' ',u.apellido_p, ' ',u.apellido_m) as usuario, SUM(ac.hora_hombre_acti) as total_act
FROM actividades ac
LEFT JOIN usuarios.personal u
ON ac.usu_id_acti = u.id_per
WHERE ac.tipo_acti = 1
AND WEEK(date(ac.fecha_mod_acti)) = WEEK(DATE('2016-08-11'))
GROUP BY ac.usu_id_acti
SELECT CONCAT(u.nombres, ' ',u.apellido_p, ' ',u.apellido_m) as usuario, SUM(ac.hora_hombre_acti) as total_act
FROM actividades ac
LEFT JOIN usuarios.personal u
ON ac.usu_id_acti = u.id_per
WHERE ac.tipo_acti = 2
AND WEEK(date(ac.fecha_mod_acti)) = WEEK(DATE('2016-08-11'))
GROUP BY ac.usu_id_acti
SELECT CONCAT(u.nombres, ' ',u.apellido_p, ' ',u.apellido_m) as usuario, av.usu_id_av as usuario, SUM(av.hora_hombre) as total_av
FROM avances av
LEFT JOIN usuarios.personal u
ON av.usu_id_av = u.id_per
WHERE WEEK(date(av.fecha_modif_av)) = WEEK(DATE('2016-08-11'))
GROUP BY av.usu_id_av
El tema es que necesito que esten en una sola consulta para poder obtener los resultados se la siguiente manera:
usuario----------------total_act1----total_act2-----total_av-------TOTALES
cristian fuentes----------2-----------------7-------------56---------------65
gabriel soez--------------8-----------------5-------------34---------------47
Espero me puedan ayudar a resolver este problema, ya que llevo días estancado en esto.
Muchas gracias.
SELECT CONCAT(u.nombres, ' ',u.apellido_p, ' ',u.apellido_m) as usuario, SUM(ac.hora_hombre_acti) as total_act
FROM actividades ac
LEFT JOIN usuarios.personal u
ON ac.usu_id_acti = u.id_per
WHERE ac.tipo_acti = 1
AND WEEK(date(ac.fecha_mod_acti)) = WEEK(DATE('2016-08-11'))
GROUP BY ac.usu_id_acti
SELECT CONCAT(u.nombres, ' ',u.apellido_p, ' ',u.apellido_m) as usuario, SUM(ac.hora_hombre_acti) as total_act
FROM actividades ac
LEFT JOIN usuarios.personal u
ON ac.usu_id_acti = u.id_per
WHERE ac.tipo_acti = 2
AND WEEK(date(ac.fecha_mod_acti)) = WEEK(DATE('2016-08-11'))
GROUP BY ac.usu_id_acti
SELECT CONCAT(u.nombres, ' ',u.apellido_p, ' ',u.apellido_m) as usuario, av.usu_id_av as usuario, SUM(av.hora_hombre) as total_av
FROM avances av
LEFT JOIN usuarios.personal u
ON av.usu_id_av = u.id_per
WHERE WEEK(date(av.fecha_modif_av)) = WEEK(DATE('2016-08-11'))
GROUP BY av.usu_id_av
El tema es que necesito que esten en una sola consulta para poder obtener los resultados se la siguiente manera:
usuario----------------total_act1----total_act2-----total_av-------TOTALES
cristian fuentes----------2-----------------7-------------56---------------65
gabriel soez--------------8-----------------5-------------34---------------47
Espero me puedan ayudar a resolver este problema, ya que llevo días estancado en esto.
Muchas gracias.
Valora esta pregunta


0