Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta Multiples tablas catalogo

Estas en el tema de Consulta Multiples tablas catalogo en el foro de Mysql en Foros del Web. Buen día, si alguien me pudiera ayudar se lo agradeceria, nesecito consultar tres tablas , usuarios, estado_llamada, clientes_procesados. Debo mostar la cantidad de tipologias en ...
  #1 (permalink)  
Antiguo 29/04/2013, 22:56
 
Fecha de Ingreso: abril-2013
Mensajes: 9
Antigüedad: 11 años
Puntos: 0
Consulta Multiples tablas catalogo

Buen día, si alguien me pudiera ayudar se lo agradeceria, nesecito consultar tres tablas , usuarios, estado_llamada, clientes_procesados.
Debo mostar la cantidad de tipologias en contradas por usuario, aunque no existan en mi tabla de cprocesados, deberia ser algo como esto
Código MySQL:
Ver original
  1. SELECT count( cp.estado_llamada ) AS llamadas, et.nombre AS n1, us.nombre AS n2, cp.idusuarios AS id
  2. FROM clientes_procesados cp
  3. RIGHT JOIN estado_llamada et ON et.id = cp.estado_llamada
  4. LEFT JOIN usuarios us ON us.idusuarios = cp.idusuarios
  5. WHERE cp.idusuarios = us.idusuarios
  6. AND cp.estado_llamada = et.id
  7. AND cp.fecha
  8. '2013-04-04'
  9. )
  10. AND (
  11. '2013-05-04'
  12. )
Esta consulta funciona siempre y cuando el usuario aya procesado un registro.
Lo que nesesito es que se me muestre como un reporte, independiente de si existe o no, por ejemplo
consulto, el primer usuario, si este no tiene regitros procesados deberia mostrarme la siguiente informacion
Código MySQL:
Ver original
  1. count( cp.estado_llamada ) AS llamadas = 0,
  2. et.nombre AS n1=desconectado,
  3. us.nombre AS n2 = Alejandro,
  4. cp.idusuarios AS id=19
Gracias por su ayuda.

Última edición por gnzsoloyo; 30/04/2013 a las 06:32 Razón: SQL sin etiquetar
  #2 (permalink)  
Antiguo 30/04/2013, 06:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 13
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Consulta Multiples tablas catalogo

mhmmmm

Yo usaría la funcion DISTINCT, y si diera algun problema cuando fuese 0 en el COUNT usaria un ifnull...
Código MySQL:
Ver original
  1. DISTINCT usuarios.nombre AS n2,
  2. count(clientes_procesados.estado_llamada) AS llamadas,
  3. estado_llamada.nombre AS n1,
  4. clientes_procesados.idusuarios As id
  5. FROM clientes_procesados, usuarios, estado_llamada
  6. WHERE clientes_procesados.idusuarios = usuarios.idusuarios
  7. AND clientes_procesados.estado_llamada = estado_llamada.id
  8. AND clientes_procesados.fecha
  9. '2013-04-04'
  10. )
  11. AND (
  12. '2013-05-04'
  13. )

Última edición por gnzsoloyo; 30/04/2013 a las 06:32 Razón: SQL sin etiquetar
  #3 (permalink)  
Antiguo 30/04/2013, 08:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta Multiples tablas catalogo

Aunque no nos hablas de la naturaleza de los datos con ejemplos, la idea vendría a ser algo así
Código MySQL:
Ver original
  1. SELECT et.nombre n1,
  2.              us.nombre n2,
  3.              cp.idusuarios id,
  4.              IFNULL(count( cp.estado_llamada ),0) llamadas
  5.     FROM usuarios us
  6.              LEFT JOIN clientes_procesados cp
  7.                      ON  us.idusuarios = cp.idusuarios
  8.              LEFT JOIN estado_llamada et
  9.                     ON cp.estado_llamada = et.id
  10.              WHERE cp.fecha BETWEEN  '2013-04-04' AND  '2013-05-04'
  11.              GROUP BY us.idusuarios
  #4 (permalink)  
Antiguo 30/04/2013, 20:51
 
Fecha de Ingreso: abril-2013
Mensajes: 9
Antigüedad: 11 años
Puntos: 0
Respuesta: Consulta Multiples tablas catalogo

Hola gracias por la pronta respuesta, les ilustro un poco mas lo que necesito,
Primero mi tabla de usuarios.

idusuario nombre
19 usuario1
46 usuario2
47 usuario3
48 usuario4




Ahora les muestro mi tabla estado_llamadas
id nombre
0 Sin procesar
1 No responde
2 Contestadora
3 Ocupado
4 Desprogramado
5 Desconectado
6 Equivocado
7 Llamar mas tarde
8 No llamar mas
10 Procesado

Por ultimo mi tabla de clientes_procesados
id nombre idusuario estado_llamada
68 cliente1 19 1
82 cliente2 19 5
83 cliente3 19 5
84 cliente4 19 3
85 cliente5 19 1
96 cliente6 19 1
109 cliente7 19 6
191 cliente8 19 7
192 cliente9 19 1





Quiero que muestre la información de la siguiente forma.
usuarios.idusuarios usuarios.nombre estado_llamada.id estado_llamada.id count(clientes_procesados.id)
19 usuario1 0 Sin procesar 12
19 usuario1 1 No responde 1
19 usuario1 2 Contestadora 2
19 usuario1 3 Ocupado 3
19 usuario1 4 Desprogramado 0
19 usuario1 5 Desconectado 0
19 usuario1 6 Equivocado 0
19 usuario1 7 Llamar mas tarde 0
19 usuario1 8 No llamar mas 0
19 usuario1 10 Procesado 0
46 usuario2 0 Sin procesar 23
46 usuario2 1 No responde 0
46 usuario2 2 Contestadora 0
46 usuario2 3 Ocupado 0
46 usuario2 4 Desprogramado 23
46 usuario2 5 Desconectado 0
46 usuario2 6 Equivocado 0
46 usuario2 7 Llamar mas tarde 0
46 usuario2 8 No llamar mas 0
46 usuario2 10 Procesado 23
47 usuario3 0 Sin procesar 0
47 usuario3 1 No responde 0
47 usuario3 2 Contestadora 0
47 usuario3 3 Ocupado 0
47 usuario3 4 Desprogramado 0
47 usuario3 5 Desconectado 0
47 usuario3 6 Equivocado 0
47 usuario3 7 Llamar mas tarde 0
47 usuario3 8 No llamar mas 23
47 usuario3 10 Procesado 0
48 usuario4 0 Sin procesar 0
48 usuario4 1 No responde 23
48 usuario4 2 Contestadora 24
48 usuario4 3 Ocupado 25
48 usuario4 4 Desprogramado 26
48 usuario4 5 Desconectado 27
48 usuario4 6 Equivocado 12
48 usuario4 7 Llamar mas tarde 1
48 usuario4 8 No llamar mas 23
48 usuario4 10 Procesado
Como ven este es un ejemplo de lo que necesito, aunque en mi tabla de clientes_procesados, el id del usuario no se encuentre, este igual lo muestre, de igual forma se muestre el estado aunque no exista en mi tabla de clientes_procesados y que muestre la cantidad de regitros que ha procesado el usuario según el estado_llamada.

Les agradezco que me estén dando este apoyo.
  #5 (permalink)  
Antiguo 01/05/2013, 05:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta Multiples tablas catalogo

Código MySQL:
Ver original
  1.    t1.idusuario,
  2.    t1.nombre,
  3.    t1.idel,
  4.    t1.nombreel,
  5.    COUNT( cp.estado_llamada )
  6. FROM clientes_procesados cp
  7.  
  8.    SELECT
  9.      u.idusuario,
  10.      u.nombre,
  11.      el.id idel,
  12.      el.nombre nombreel
  13.    FROM usuarios u, estado_llamadas el
  14. ORDER BY u.idusuario, el.id)t1
  15.  ON cp.idusuario = t1.idusuario
  16. AND cp.estado_llamada = t1.idel
  17. GROUP BY t1.idusuario, t1.idel
  18. ORDER BY t1.idusuario, t1.idel
  #6 (permalink)  
Antiguo 01/05/2013, 17:58
 
Fecha de Ingreso: abril-2013
Mensajes: 9
Antigüedad: 11 años
Puntos: 0
Respuesta: Consulta Multiples tablas catalogo

Muchas gracias mi estimado, con esto resuelvo mi problema y he aprendido, te lo agradezco, y atodos aquellas personas que dieron su aporte, exelente foro.

Etiquetas: select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:18.