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

Consulta con 3 tablas

Estas en el tema de Consulta con 3 tablas en el foro de Mysql en Foros del Web. Hola a todos Necesito de su ayuda, tengo que hacer una consulta que toma datos de 3 tablas. Explico un poco que tienen las tablas ...
  #1 (permalink)  
Antiguo 19/01/2009, 13:41
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años
Puntos: 2
Consulta con 3 tablas

Hola a todos

Necesito de su ayuda, tengo que hacer una consulta que toma datos de 3 tablas. Explico un poco que tienen las tablas


1.- Tabla: agente_diario: guarda las acciones que hace cada usuario en el sistema, me interesa de esta tabla el tiempo de logon expresado en minutos tiempologon_mm, disponible_mm y conversacion_mm.

2.- Tabla hheeagente: guarda el tiempo extra que estubo en sesión cada agente, cada agente tiene definido un tiempo de trabajo (en la tabla usuarios) y si excede ese máximo, registra el valor del tiempo excedido en mm, campo hhee.

3.- Tabla Usuarios: tiene los parametros del usuario, dentro de los que me interesan para esta consulta estan los campos: tiempoturno (que esta determinado por el tipo de turno, cada tipoturno tiene asignado un valor tiempototal, y de tiempotrabajo) y tiempotrabajo, que es el tiempo efectivo de trabajo, descontado los lapsos de colacion y descanzo.

Pues ahora lo que necesito es una consulta que me liste:
Nombreagente, tipoturno, fecha, tiempoturno, tiempotrabajo, tiempologon_mm, hhee, (disponible_mm + conversacion_mm) Efectividad, ((disponible_mm + conversacion_mm)/tiempologonn_mm) indice_efectividad.

Pero la siguiente consulta me lista el primer registro que tiene un agente en la tabla hheeagente, y no el que corresponde a la fecha de los datos de la tabla agente_diario.

Código:
select
a.agente,
b.tipoturno,
a.fecha,
b.tiempototal,
b.tiempotrabajo,
a.logon_mm as 'T de logon',
c.hhee,
(a.conversacion_mm) + (a.disponible_mm) `efectividad`,
((a.conversacion_mm + a.disponible_mm)/a.logon_mm) `indice_efectividad`
from agente_diario a
left join usuarios b
on a.userid = b.userid
left join hheeagente c
on a.agente = c.nombrecompleto
where a.fecha between '2009-01-13' and '2009-01-13'
group by  a.userid;
Tabla trafico diario

Código:
Table          Create Table                                         
-------------  -----------------------------------------------------
agente_diario  CREATE TABLE `agente_diario` (                       
                 `nombreagente` varchar(50) default NULL, 
                 `tiempologon_hhmm` time default '00:00:00',                  
                 `tiempologon_mm` int(10) default NULL,
                 `fechalogon` date default NULL,
                 `disponible_mm` int(10) default NULL,              
                 `nodisponible_mm` int(10) default NULL,            
                 `trabajando_mm` int(10) default NULL,              
                 `conversacion_mm` int(10) default NULL,      
                 `userid` int(4) default NULL                      
               ) TYPE=MyISAM
Tabla control HHEE (tiempo extra)
Código:
Table       Create Table                                  
----------  ----------------------------------------------
hheeagente  CREATE TABLE `hheeagente` (                   
              `userid` int(4) default NULL,               
              `nombrecompleto` varchar(50) default NULL,  
              `empresa` varchar(20) default NULL,         
              `tipoturno` varchar(30) default NULL,       
              `fecha` date default NULL,                  
              `hhee` int(4) default NULL                  
            ) TYPE=MyISAM
Tabla datos usuarios

Código:
 Table     Create Table                                  
--------  ----------------------------------------------
usuarios  CREATE TABLE `usuarios` (                     
            `userid` int(4) default NULL,          
            `nombrecompleto` varchar(50) default NULL,  
            `empresa` varchar(20) default NULL,         
            `tipoturno` varchar(20) default NULL,       
            `tiempoturno_mm` int(6) default NULL,          
            `tiempotrabajo_mm` int(6) default NULL         
          ) TYPE=MyISAM
Espero no haberlos mareado que tanto dato, pero quise poner todo para que se entienda.

desde ya gracias
  #2 (permalink)  
Antiguo 20/01/2009, 13:26
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años
Puntos: 2
Respuesta: Consulta con 3 tablas

que alguien se apiade de mi
please
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 21:42.