Intervienen tres Tablas: Despacho, Usuario, Cuentas*
(Un usuario tiene varias cuentas, calificadas con elgun estatus.)
TDespacho:
TUsuario:
ID Ciudad
1----DF
2----PUE
3----GDL
TCuenta:
ID_usar IdDesp Usuario
1---------1--------Juan
2---------1--------Luis
3---------1--------Pedro
4---------2--------Oscar
5---------2--------Liz
6---------2--------Jose
7---------3--------Maria
ID_Cta Estatus Usuario
101-----Nueva--------5
102-----Trabajada----2
103-----Trabajada----7
104-----Calificada----5
105-----Calificada----5
106----- Nueva-------1
107-----Trabajada----3
108-----Nueva--------1
109-----Trabajada----3
110-----Otra-----------7
etc, etc, etc...
Lo que hace mi reporte es Mostrar todas las diferentes cuentas de cada usuario, y estos usuario agrupados a su vez por despacho:
DF
Juan: Nuevas 20; Trabajada 20; Calificada 5; Otras 5; Total:50
Luis:Nuevas 10; Trabajada 30; Calificada 7; Otras 3; Total:50
Pedro:Nuevas 35; Trabajada 10; Calificada 5; Total:50PUE
Oscar: Nuevas 35; Trabajada 15; Total:50
Liz:Nuevas 10; Trabajada 15; Calificada 5; Otras 20; Total:50
Jose:Nuevas 50; Total:50GDL
Maria: Nuevas 8; Trabajada 22; Calificada 15; Otras 5; Total:50Y para hacer esto desde PHP ejecuto:
1 Una consulta para traer los despachosNo se exactamente como optimizar estas consultas, estoy intentando anidarlas en una sola pero es imposible traer todos los usaurios y sus cuentas agrupadas por estatus...
2 Obtengo lo usaurios de cada despacho2.1 Por cada usuario hago una consulta para obtener sus cuentas asiganadas, las agrupo por estatus (Esta es la consulta que me hace lento el reporte)
Para este tipo de casos que es mas recomendable hacer?
?
* Hacer una compleja consulta, con anidaciones y condiciones, etc etc etc
* Usar vistas y/o store procedures
* Seguir con cada consulta, y en cada registro devuelto ejecutar la siguiente y así??
Se que es larga la pregunta, ojala puedan aconsejarme.
De antemano gracias y saludos.