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

Problemas con una Consulta (sencilla?) en Access

Estas en el tema de Problemas con una Consulta (sencilla?) en Access en el foro de Bases de Datos General en Foros del Web. Hola a todos. Tengo un problemilla con una consulta en access. Les detallo el tema: tengo dos tablas, Clientes y Pagos. La tabla Clientes tiene ...
  #1 (permalink)  
Antiguo 27/03/2011, 17:03
 
Fecha de Ingreso: marzo-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Exclamación Problemas con una Consulta (sencilla?) en Access

Hola a todos. Tengo un problemilla con una consulta en access. Les detallo el tema: tengo dos tablas, Clientes y Pagos. La tabla Clientes tiene dos campos; IdCliente (autonumérico) y Nombre (Texto). La tabla Pagos tiene 3 campos; IdPago (Auto), Monto (Moneda) e IdCliente (Numérico). Ambas tablas están relacionadas por el campo IdCliente.

En una consulta, donde se visualizan ambas tablas, muestro el IdPago, Monto y el Nombre del Cliente. Los clientes que han pagado son mostrados sin problemas.

Ahora bien, yo necesito ver en la consulta los clientes que no han registrado ningún pago. Como hago eso?

Gracias desde ya.

Eckol11
  #2 (permalink)  
Antiguo 27/03/2011, 17:07
 
Fecha de Ingreso: marzo-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Respuesta: Problemas con una Consulta (sencilla?) en Access

Creo que ya está. A ver...,

SELECT Pagos.IdPago, Pagos.Monto, Pagos.IdCliente, Clientes.Nombre
FROM Clientes LEFT JOIN Pagos ON Clientes.IdCliente = Pagos.IdCliente;

probé esto y hasta acá me resulta útil.

Alguna objeción con la solución?
  #3 (permalink)  
Antiguo 27/03/2011, 19:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problemas con una Consulta (sencilla?) en Access

La idea está casi completa. LEFT JOIN efectivamente te devuelve los registros de la primera tabla coincidan o no con la segunda. Pero como te devuelve ambos, lo que resta es eliminar aquellos que si tienen coincidencia.
Algo así como:
Código SQL:
Ver original
  1. ELECT P.IdCliente, C.Nombre, P.IdPago, P.Monto
  2. FROM Clientes C LEFT JOIN Pagos P ON C.IdCliente = P.IdCliente
  3. WHERE P.IdCliente IS NULL;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: access, sencilla, bases-de-datos
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:47.