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

no funciona innner join con between

Estas en el tema de no funciona innner join con between en el foro de Mysql en Foros del Web. Estimados: tengo una query que no me funciona con las funciones indicadas en el titulo esta es una query que me funciona como debería pero ...
  #1 (permalink)  
Antiguo 30/10/2013, 13:47
 
Fecha de Ingreso: abril-2013
Mensajes: 24
Antigüedad: 11 años
Puntos: 0
no funciona innner join con between

Estimados: tengo una query que no me funciona con las funciones indicadas en el titulo

esta es una query que me funciona como debería pero sin la condicional del between que necesito:

Código MySQL:
Ver original
  1. select  subtipo,
  2.         avg(tiempos.t_respuesta) as promedio,
  3.         format(tiempo_Respuesta/24,0) as dias_base
  4.         from sacmaquipan.subtipos
  5.         left join tiempos on subtipos.subtipo = tiempos.etapa
  6.         where
  7.         tipo  = '23'       
  8.         group by subtipo;

y me da como resultado esto

Subtipo Promedio dias_base
Aprobacion Comercial 3 2
Cerrado PMT 0
Confirmacion PMT 2
Premontaje 2
Solicitud de Cotizacion 0
Solicitud PMT 3 1

ahora si a la misma consulta le agrego el between que necesito para hacer la búsqueda en un rango de fechas especificas no me muestra todos los datos de la tabla subtipo, que es la lista de subtipo

Código MySQL:
Ver original
  1. select  subtipo,
  2.         avg(tiempos.t_respuesta) as promedio,
  3.         format(tiempo_Respuesta/24,0) as dias_base
  4.         from sacmaquipan.subtipos
  5.         left join tiempos on subtipos.subtipo = tiempos.etapa
  6.         where
  7.         tiempos.f_inicio BETWEEN '2013-10-26' and '2013-10-28' and
  8.         tipo  = '23'       
  9.         group by subtipo;

el resultado es :
subtipo Promedio dias_base
Aprobacion Comercial 1 2
Cerrado PMT 0

la idea es que me muestre la misma lista de arriba pero con los valores promediados según el rango de fecha

muchas gracias por su ayuda,
  #2 (permalink)  
Antiguo 30/10/2013, 14:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: no funciona innner join con between

¿Estas seguro de que para esos subtipos del tipo 23 que te faltan en la segunda consulta hay registros con f_inicio entre '2013-10-26' y '2013-10-28'?

Comprueba eso antes.
  #3 (permalink)  
Antiguo 30/10/2013, 14:30
 
Fecha de Ingreso: abril-2013
Mensajes: 24
Antigüedad: 11 años
Puntos: 0
Respuesta: no funciona innner join con between

estimado no hay registros con esos subtipos para esas fechas pero en el caso que no hubiera lo ideal es que los muestre igual pero vacios como la tabla de arriba
  #4 (permalink)  
Antiguo 31/10/2013, 11:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: no funciona innner join con between

No lo he probado, pero tal vez así:
Código MySQL:
Ver original
  1. SELECT a.subtipo,
  2.             IFNULL(t1.promedio,0) promedio
  3.             IFNULL(t1.dias_base,0) dias_base
  4.    FROM ascmaquipan a
  5.          LEFT JOIN (SELECT  subtipo,
  6.             avg(tiempos.t_respuesta) promedio,
  7.             FORMAT(tiempo_Respuesta/24,0) dias_base
  8.             FROM sacmaquipan.subtipos
  9.             INNER JOIN tiempos on subtipos.subtipo = tiempos.etapa
  10.             WHERE
  11.             tiempos.f_inicio BETWEEN '2013-10-26' AND '2013-10-28'
  12.             AND tipo  = '23'      
  13.             GROUP BY subtipo)t1
  14.         ON a.subtipo = t1.subtipo
  15.                 ORDER BY a.subtipo

Etiquetas: join, select, tabla
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 19:38.