Quiero una consulta que me combine dos tablas teniendo en cuenta la fecha de alta. ¿Podéis ayudarme?

Hola.
Te agradecería si me pudieras ayudar en lo siguiente:
Tengo dos tablas. Pondré unos datos de ejemplo.
------------------------
Tabla Consumos
------------------------
Numero Fecha Importe
------ ------- -------
123456 03/07/02 42,63
123456 12/08/02 13,81
------------------------
----------------------------
Tabla Clientes
----------------------------
Numero Cliente Fecha_de_Alta
------ ------- -------------
123456 Andres 01/05/02
123456 Pedro 01/06/02
123456 Juan 01/08/02
123456 Lucas 01/09/02
----------------------------
Deseo una consulta que me combine ambas tablas teniendo en cuenta la fecha de alta. En el ejemplo anterior, la consulta resultante debería ofrecer los datos siguientes:
-------------------------------
Resultados de la consulta
-------------------------------
Numero Fecha Cliente Importe
------ -------- ------- -------
123456 03/07/02 Pedro 42,63
123456 12/08/02 Juan 13,81
-------------------------------
Te doy las gracias anticipadas por tu respuesta.
Saludos.

1 respuesta

Respuesta
1
Tal como tienes estructuradas las tablas es posible que no consigas unos resultados normales en una consulta. Así pues, te sugiero lo siguiente:
Deberías colocar un IDCliente (no necesariamente un autonumérico) sino un Id del tipo usado en el formulario Clientes de neptuno.mdb, ya que es más que seguro que tengas varios Clientes llamados "Andres" o "Lucas". Si te fijas en el Id que te comento verás que es un campo texto, tamaño del campo 5, mascara de entrada >LLLLL, esta indexado (sin duplicados) y es clave principal. Con este campo conseguimos crear una contracción del nombre y apellidos del Cliente, p.e.: Raul Moscardo podría quedar en este Id como "RAUMO".
Bien, este IdCliente también estará en tu tabla Consumos, será de tipo texto, tamaño del campo 5, indexado si (con duplicados). De esta forma vamos a crear una Relación entre las dos tablas para que cualquier consulta que realicemos sea coherente.
La tabla Clientes sera el lado Uno y Consumos sera la tabla del lado Varios, el tipo de Relación lo hacemos desde el campo IdClientes de Clientes hasta el campo IdClientes de Consumos, la Combinación será del tipo 1 (se incluyen las filas donde los campos combinados de ambas tablas sean iguales), puedes exigir integridad referencial y actualizar en cascada.
De esta forma ya podemos introducir datos y hacer la consulta de una forma lógica, p.e.: usando neptuno.mdb, una consulta típica seria ver los Cargos por Pedidos de un Cliente, visto en SQL seria algo así:
SELECT Clientes.IdCliente, Pedidos.IdPedido, Pedidos.FechaPedido, Pedidos.Cargo
FROM Clientes INNER JOIN Pedidos ON Clientes.IdCliente = Pedidos.IdCliente
WHERE (((Clientes.IdCliente)="alfki"));
Lo mismo pero ademas consultando en un periodo de fechas determinado:
SELECT Clientes.IdCliente, Pedidos.IdPedido, Pedidos.FechaPedido, Pedidos.Cargo
FROM Clientes INNER JOIN Pedidos ON Clientes.IdCliente = Pedidos.IdCliente
WHERE (((Clientes.IdCliente)="alfki") AND ((Pedidos.FechaPedido) Between #1/1/2002# And #12/31/2002#));
Tal como te lo planteas, tu consulta es muy similar, un Cliente determinado en un periodo de fechas tiene unos consumos que cuestan x.
NOTA: tal vez sea más simple si esa fecha de alta que mencionas es Única y en ese caso la usas como indice.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas