Access consulta Mostrar todos los clientes que...

Necesito resolver una consulta en Access : Mostrar todos los clientes que han comprado algo. Tengo la tabla de clientes y la tabla de pedidos donde aparece el idcliente... He conseguido mostrar el listado de todos los pedidos con todos los clientes que han pedido algo pero evidentemente algunos salen mas de una vez ¿Cómo lo hago para un resultado correcto?

2
Respuesta
1

Hay varias formas de hacerlo, yo te menciono dos:

1º/ Hacer una consulta sobre ambas tablas usando la cláusula DISTINCT para eliminar duplicados, por ejemplo:

SELECT DISTINCT Pedidos.IdCliente, Clientes.NombreCompañia, Clientes.NombreContacto, Clientes.CargoContacto, Clientes.Direccion, Clientes.Ciudad
FROM Clientes INNER JOIN Pedidos ON Clientes.IdCliente = Pedidos.IdCliente;

2º/ Usar una subconsulta para filtrar los datos de la tabla clientes. Esta subconsulta (te la amrco en negrita) sería una consulta de no coincidentes (el asistente de consultas te guía para hacerla), por ejemplo:

SELECT Clientes.IdCliente, Clientes.NombreCompañia, Clientes.NombreContacto, Clientes.CargoContacto, Clientes.Direccion, Clientes.Ciudad
FROM Clientes
WHERE (((Clientes.IdCliente) Not In (SELECT Clientes.IdCliente FROM Clientes LEFT JOIN Pedidos ON Clientes.IdCliente = Pedidos.IdCliente
WHERE (((Pedidos.IdCliente) Is Null)))));

Te dejo un ejemplo sobre la base de datos Neptuno con las dos consultas que menciono y además, una de no coincidentes con más campos de los que usé como subconsulta: http://www.filebig.net/files/yBzEE9tYWy

El la tabla Clientes hay 91 registros, pero solo 89 tienen pedidos, que son los que muestran las dos consultas, mientras que la de no coincidentes, lógicamente devuelve solo 2 registros.

Un saludo.


     bit.ly/ForoNkSv 

1 respuesta más de otro experto

Respuesta
-1

Lo que entiendo que quieres Sergi es que te sume los importes por cliente. Si es así simplemente tienes que agrupar por cliente y en importe poner suma. Te lo pongo en imágenes un ejemplo a ver si es lo que quieres. Si quieres desde SQL sería (tienes que poner los nombres de tus campos):

SELECT Clientes.Nombre_Cliente, Sum(Pedidos.Importe_producto) AS SumaDeImporte_producto
FROM Clientes INNER JOIN Pedidos ON Clientes.[Id] = Pedidos.[Cliente]
GROUP BY Clientes.Nombre_Cliente;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas