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

Consulta sql entre fechas, tabla auxiliar

Estas en el tema de Consulta sql entre fechas, tabla auxiliar en el foro de Bases de Datos General en Foros del Web. Buenas, Necesito hacer una consulta que busque todos los clientes que no recibieron llamadas mayores que la fecha X Tenho la tabla de cliente con ...
  #1 (permalink)  
Antiguo 30/08/2010, 05:03
 
Fecha de Ingreso: julio-2005
Ubicación: Santiago de Compostela
Mensajes: 80
Antigüedad: 19 años, 4 meses
Puntos: 0
Consulta sql entre fechas, tabla auxiliar

Buenas,

Necesito hacer una consulta que busque todos los clientes que no recibieron llamadas mayores que la fecha X

Tenho la tabla de cliente con los datos... (nombre, dni...)

Y una otra con el nombre de llamadas con el codigo del cliente y la fecha de las llamadas.

Código:
SELECT clientes.id,clientes.activo, clientes.nombre,llamadas.alerta,id_tipo_cliente,COUNT(*) as registros FROM clientes INNER JOIN llamadas ON (clientes.id = llamadas.cliente and llamadas.alerta < '"&fecha2&"'   ) GROUP BY clientes.id,clientes.nombre,clientes.activo,id_tipo_cliente,llamadas.alerta having clientes.activo = 1 and id_tipo_cliente = "&tipocliente&" and llamadas.alerta between '"&fecha1&"' and '"&fecha2&"' and llamadas.alerta < '"&fecha2&"'   order by llamadas.alerta desc, registros desc
El problema que tengo es que la tabla llamadas se repite y el mismo cliente fue llamado entre distinta fechas...

Si un cliente fue llamado el día 20/05/2010 y el día 20/08/2010 si hago un listado por días menores que el 19/05/2010 este cliente no debería salir en el listado.

Como puedo hacer?

gracias
  #2 (permalink)  
Antiguo 30/08/2010, 09:18
 
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Consulta sql entre fechas, tabla auxiliar

Bueno si queres buscar todos los clientes que no recibieron llamadas mayores tu fecha x usaria un left join en vez del inner join que usas ya que el left join te une las tablas de izquierda a derecha y en la parte derecha te da que esta unido a nulos.
si no se entiende probalo y capaz te des una idea de como funciona y ver si realmente te sirve.

Suerte
  #3 (permalink)  
Antiguo 30/08/2010, 11:07
 
Fecha de Ingreso: julio-2005
Ubicación: Santiago de Compostela
Mensajes: 80
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Consulta sql entre fechas, tabla auxiliar

Cita:
Iniciado por seba7777 Ver Mensaje
Bueno si queres buscar todos los clientes que no recibieron llamadas mayores tu fecha x usaria un left join en vez del inner join que usas ya que el left join te une las tablas de izquierda a derecha y en la parte derecha te da que esta unido a nulos.
si no se entiende probalo y capaz te des una idea de como funciona y ver si realmente te sirve.

Suerte

Gracias,

Lo estoy intentando así:

fecha1 = date()

SQL = "SELECT id,nombre,fecha FROM CLIENTES WHERE ID NOT IN (SELECT cliente FROM LLAMADAS WHERE alerta >= '"&fecha1&"')

Solo necesito los datos del clientes...
  #4 (permalink)  
Antiguo 30/08/2010, 15:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Consulta sql entre fechas, tabla auxiliar

Creo que el problema no es de la sintaxis sql, sino de la sintaxis de Access, si es que es lo que estás usando). Recuerda que las fechas se deben incluir entre #21/02/10#
No sé si será eso, pero prueba. No he probado esto:
SQL = "SELECT id,nombre,fecha FROM CLIENTES WHERE ID NOT IN (SELECT cliente FROM LLAMADAS WHERE alerta >= '#"&fecha1&"#')
  #5 (permalink)  
Antiguo 30/08/2010, 15:27
 
Fecha de Ingreso: julio-2005
Ubicación: Santiago de Compostela
Mensajes: 80
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Consulta sql entre fechas, tabla auxiliar

Cita:
Iniciado por jurena Ver Mensaje
Creo que el problema no es de la sintaxis sql, sino de la sintaxis de Access, si es que es lo que estás usando). Recuerda que las fechas se deben incluir entre #21/02/10#
No sé si será eso, pero prueba. No he probado esto:
SQL = "SELECT id,nombre,fecha FROM CLIENTES WHERE ID NOT IN (SELECT cliente FROM LLAMADAS WHERE alerta >= '#"&fecha1&"#')
Voy a probar por la mañana, estoy usando sql server...

gracias

Etiquetas: auxiliar, fechas, sql, tablas
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 23:01.