Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda con consulta de ultimos pedidos (https://www.clubdelphi.com/foros/showthread.php?t=33517)

Faust 09-07-2006 17:20:17

Ayuda con consulta de ultimos pedidos
 
Saludos camaradas de los foros del Club Delphi, tengo una duda muy dudosa a mi modo de ver, quizás parezca una duda de principiantes :o , pero me trae como loco, espero alguien me eche una manita, pues no doy ni una.

Estoy ocupando MS Acces XP y componentes ADO.

Necesito una consulta que me muestre únicamente el último pedido de cada cliente, como la base de datos se respalda y depura cada dos mes, hay momentos en que algunos clientes no tienen un pedido, pues ya fueron cubiertos y eliminados de la base de datos, mientras que los pedidos que no han sido cubiertos se conservan, a continuación inserto el SQL que actualmente utilizo:

Código SQL [-]
SELECT Clientes.idCliente, Clientes.Alias, Clientes.RazonSocial, (SELECT MAX(Pedidos.FechaPedido) FROM Pedidos WHERE Clientes.idCliente=Pedidos.idCliente) AS Fecha
FROM Clientes
ORDER BY 4 ASC


Pues esta consulta, solo me muestra la fecha del último pedido, pero necesito mostrar más datos sobre el último pedido, como los detalles, tipo de entrega, etc., ya he intentado de varias formas, pero siempre me da un error.
También en ordenarla, no puedo utilizar el nombre de la columna Fechas, me dice que no ha sido definida esa columna, así que ocupo el número de columna, lo cual me funciona en Access, pero en delphi no.

Bueno pues me despido agradeciendo de una vez a todos aquellos dispuestos a ayudarme y saludando a todos los que pasen por aquí.

nemesio 09-07-2006 22:44:11

Hola

La consulta te va a mostrar solo los campos que hayas seleccionado con SELECT. Por lo que veo solo tienes los campos: Clientes.idCliente, Clientes.Alias, Clientes.RazonSocial y solamente esos son los que van a aparecer en la consulta. Prueba colocar los campos que requieres.
Otra forma es que en la Tabla que tienes con los datos personales del cliente agregues un campo fecha que se actualice cada vez que incluyas un pedido nuevo.

Suerte.

Lepe 10-07-2006 09:51:01

Puedes usar un inner join para mostrar los demás datos, busca un manual de SQL para que aprendas a usar esa instrucción y algunas más ;).

Quizás puedas usar Alias y usarlo para ordenar, no he usado Access, pero prueba esto:

Código SQL [-]
 .... (SELECT MAX(Pedidos.FechaPedido) as UltimaFecha .... order by UltimaFecha

Un ejemplo de inner join es:
Código SQL [-]
SELECT C.IDCLIENTE, C.NOMBRECLIENTE, F.IDFACTURA 
FROM  CLIENTES C INNER JOIN FACTURAS F ON C.IDCLIENTE = F.IDCLIENTE
ORDER BY C.NOMBRECLIENTES
Usamos "C" como alias de la tabla cliente y ahorramos algunos caracteres, además, como el campo IDCLIENTE existe en ambas tablas, la "C" nos califica la tabla a la que queremos hacer referencia.

Saludos


La franja horaria es GMT +2. Ahora son las 09:29:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi