Necesito agrupar varias consultas en una sola. tengo 4 consultas de la siguiente estructura:
Código:
Esta consulta me retornaselect u.nombre_usuario, count(*) from estados_canales e1, usuarios u where e1.canales_id=3 and e1.fecha_asignacion between '2011-08-01' AND '2011-08-31' and usuarios_id = usuario_asignado and u.id = e1.usuarios_id group by u.id;
Nombre Usuario - Cantidad
analista1 - 2
analista2 - 2
Código:
Esta consulta me retorna vacíoselect u.nombre_usuario, count(*) from usuarios u, historial_solicitudes hs where hs.canales_id=3 and hs.fecha between '2011-08-01' AND '2011-08-31' and u.id = hs.usuarios_id and hs.estados_id=7 group by u.id;
Código:
Esta consulta me retornaselect u.nombre_usuario, count(*) from estados_canales e1, usuarios u where e1.canales_id=3 -- and e1.fecha between '2011-08-01' AND '2011-08-31' and e1.estados_id=1 and u.id = e1.usuarios_id group by u.id;
Nombre Usuario - Cantidad
analista1 - 2
analista2 - 1
Código:
Esta consulta me retornaselect u.nombre_usuario, count(*) from estados_canales e1, usuarios u, solicitudes s where e1.canales_id=3 -- and e1.fecha between '2011-08-01' AND '2011-08-31' and '2011-08-23' > s.dead_line and s.id = e1.solicitudes_id and u.id = e1.usuarios_id and u.roles_id = 3 group by u.id;
Nombre Usuario - Cantidad
analista1 - 14
analista2 - 2
Tengo la siguiente agrupación pero me retorna la suma de ambos analistas y los necesito mostrar por separado
Código:
Esta consulta que estoy intentando agrupar me retorna lo siguiente:select a.nombre ,u.nombre_usuario ,(select count(*) from estados_canales e1, usuarios u where e1.canales_id= e.canales_id and e1.fecha_asignacion between '2011-08-01' AND '2011-08-31' and usuarios_id = usuario_asignado and u.id = e1.usuarios_id) as 'asignados' ,(select count(*) from historial_solicitudes hs where hs.canales_id = e.canales_id and hs.fecha between '2011-08-01' AND '2011-08-31' and hs.usuarios_id = u.id) as 'Contestados' ,(select count(*) from estados_canales e1, usuarios u where e1.estados_id=1 and e1.canales_id=e.canales_id and e1.usuarios_id = u.id) as 'Pendientes' ,(select count(*) from estados_canales e1, solicitudes s where s.id = e.solicitudes_id and '2011-08-23' > s.dead_line and e1.canales_id=e.canales_id ) as 'Vencidas' from estados_canales e ,solicitudes s ,areas a ,usuarios u WHERE s.id = e.solicitudes_id and a.id = s.areas_id AND u.id = e.usuarios_id AND e.canales_id=3 AND u.roles_id = 3 group by a.id, u.id;
Nombre materia - usuario - asignados - contestados - pendientes - vencidas
'Concesion de Beneficios', 'analista1', '4', '32', '3', '17'
'Concesion de Beneficios', 'analista2', '4', '4', '3', '17'
'Recaudación', 'analista1', '4', '32', '3', '17'
Como decía si nos fijamos en la primera columna debería mostarme 2 para analista2 y 2 para analista1, pero me esta retornado 4, lo que corresponde a la primera consulta expuesta aquí.
¿Que estoy haciendo mal?
¿Alguien podría explicarme como agrupar estas consultas en una sola?
Desde ya muchas gracias.