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

Ayuda en consulta SQL

Estas en el tema de Ayuda en consulta SQL en el foro de Bases de Datos General en Foros del Web. HoLa Grupo Estoy usando Access (.mdb). Tablas de la B.D: - Factura - Venta - Cliente y necesito hacer una consulta SQL que devuelva lo ...
  #1 (permalink)  
Antiguo 13/09/2006, 12:37
Avatar de Maxi.Net  
Fecha de Ingreso: abril-2005
Ubicación: R.M. Talagante, Chile!!
Mensajes: 295
Antigüedad: 19 años, 1 mes
Puntos: 2
Ayuda en consulta SQL

HoLa Grupo

Estoy usando Access (.mdb).
Tablas de la B.D:

- Factura
- Venta
- Cliente

y necesito hacer una consulta SQL que devuelva lo siguiente (A continuación algunos de los campos que contienen las tablas):

Dentro de la tabla Venta existen el campo IDVenta, NumFactura y FechaPago.
En la tabla Factura existen el campo NumFactura y IDCliente.
Y la tabla Cliente existen el campo IDCliente, Nombre y Dirección.

El tema es que del resultado de una consulta SQL me arroje como resultado,
en base a la última fecha de pago del cliente (he pensado que puede ser la fecha mayor, campo FechaPago), lo sgte:

-Los datos relacionados con el Cliente (IDCliente, Nombre, etc)
-Los datos relacionados con la Venta (IDVenta, FechaPago, etc)
-Los datos relacionados con la Factura (NumFactura)

La consulta debería permitirme conocer la ultima fecha de pago de cada cliente, la venta y la factura asociada.

Ejemplo:
-----------------------------------------------------------------------------------
IDCliente │ │ Cliente │ │ Ult. FechaPago │ │ IDVenta │ │ NumFactura
-----------------------------------------------------------------------------------
12342563-5 │ │ Max Martínez │ │ 05-09-2006 │ │ 51 │ │ 123456
34697521-K │ │ Juan Plaza │ │ 02-05-2006 │ │ 20 │ │ 654321
49631254-9 │ │ Luisa Soto │ │ 31-12-2002 │ │ 2 │ │ 785421

Donde: Max Martínez registra 3 ventas, 01-01-2002, 02-05-2004 y 05-09-2006, lógicamente, la última venta registrada y pagada es la de fecha 05-09-2006.


Espero me puedan ayudar... gracias de antemano.

Saludos
__________________
Amtez de enpezar kom otro idioma,
escrivamos vien el nueztro i como corezpomde. Jracias.
  #2 (permalink)  
Antiguo 14/09/2006, 15:19
Avatar de rock_blues.NET  
Fecha de Ingreso: septiembre-2005
Mensajes: 207
Antigüedad: 18 años, 7 meses
Puntos: 0
hola maxi

las consultas relacionadas las puedes hacer con inner join
a modo de ejemplo te envio esta consulta para q ves la estructura del inner join y la puedas aplica a lo q estas desarrollando

Código PHP:
SELECT ASIGNATURA.NOMBRE,ASIGNACION_ASIGNATURA.ID_ASIGNATURA_ASIGNACION,
ASIGNACION_ASIGNATURA.ID_PROFESOR FROM ASIGNATURA 
INNER JOIN ASIGNACION_ASIGNATURA ON 
(ASIGNACION_ASIGNATURA.ID_ASIGNATURA=ASIGNATURA.ID_ASIGNATURA)
WHERE ASIGNACION_ASIGNATURA.ID_PROFESOR='".$id_profesor."'" 


sldos
  #3 (permalink)  
Antiguo 22/09/2006, 20:34
Avatar de Maxi.Net  
Fecha de Ingreso: abril-2005
Ubicación: R.M. Talagante, Chile!!
Mensajes: 295
Antigüedad: 19 años, 1 mes
Puntos: 2
gracias rock_blues.NET haber si pueden ayudarme con este SQL:

SELECT Cliente.IDCliente, Max(Venta.FechaPago) AS UltimoPago FROM ((Venta INNER JOIN Factura ON Venta.NumFactura=Factura.NumFactura) INNER JOIN Cliente ON Cliente.IDCliente=Factura.IDCliente) GROUP BY Cliente.IDCliente

Este SQL solamente devuelve la última Fecha Pago y el ID del Cliente que son algunos de los datos que necesito. ¿Cómo puedo obtener los restantes, es decir, Nombre cliente, Número factura y ID Venta?

P.D: Cuando intento obtener otros campos de la tabla cliente me arroja el sgte error:

"Ha intentado ejecutar una consulta que no incluye la expresión especificada 'campo que quiero obtener' como parte de una función de agregado."

Saludos y gracias
__________________
Amtez de enpezar kom otro idioma,
escrivamos vien el nueztro i como corezpomde. Jracias.

Última edición por Maxi.Net; 24/09/2006 a las 14:30
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 09:17.