Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta un poco particular. (https://www.clubdelphi.com/foros/showthread.php?t=20786)

syntetiko 25-04-2005 20:49:52

Consulta un poco particular.
 
Hola a todos!

Tengo una tabla llamada "transacciones" con los siguientes campos:

- idtransaccion (autonumérico identificativo de la transacción)
- idcliente
- idproducto

En ella se registran las transacciones de compra de los clientes. En ella pueden haber varias transacciones de un mismo cliente, y hasta varias transacciones de un mismo cliente y un mismo producto. Necesito obtener el listado con todos los clientes distintos que existan en la tabla junto con el último producto comprado, es decir el que tenga la transacción mayor. Por más que he intentado crear una sentencia sql que me devuelva estos resultados no lo consigo.

Alguien me podría hechar una mano?. Gracias

marcoszorrilla 25-04-2005 21:41:40

Más o menos:
Código SQL [-]
 Select IdCliente, Last(idProducto) as Ultimo_Producto
 From MiTabla
 Group By IdProducto


Ojo donde pongo Last dependiendo del motro puede ser Max.


Un Saludo.

syntetiko 30-04-2005 10:41:32

Gracias Marcos,

Tu consulta no me sirve, ya que me devuelve el producto con mayor "idproducto", y no el producto con mayor "idtransaccion".

Pablo Carlos 30-04-2005 15:31:13

Cita:

Empezado por syntetiko
Gracias Marcos,

Tu consulta no me sirve, ya que me devuelve el producto con mayor "idproducto", y no el producto con mayor "idtransaccion".

Bueno... ¿pero cambiándole los id a ese select?
Saludos

syntetiko 11-05-2005 09:32:52

Cita:

Empezado por Pablo Carlos
Bueno... ¿pero cambiándole los id a ese select?
Saludos

Ante todo, perdona por el retraso en contestarte. Si, claro he cambiado los campos pero el resultado no es el que busco. Esta consulta me devuelve mas registros que el total de clientes que existe, cuando debería devolverme tantos registros como clientes diferentes existen, que es lo que busco: conocer que producto se vendió en la ultima transacción que realizó cada uno de los cliente.

Select idcliente, max(transaccion) as ultima_transaccion
From miTable
Group By idproducto,idcliente,ultima_transaccion

He probado tb con esta pero tampoco:

Select distinct(oricodi), max(sertran) as ultima_transaccion
From dark_todos
Group By tracodi,oricodi,ultima_transaccion


Gracias.

PeLuCa 12-05-2005 04:03:09

Una Prueba
 
Si pones:
Select distinct(m1.idcliente),m1.transaccion
from miTable m1
where m1.transaccion = (Select max(m2.Transaccion)
from miTabla m2
where m1.idcliente = m2.idCliente ).

syntetiko 14-05-2005 10:54:24

Cita:

Empezado por PeLuCa
Si pones:
Select distinct(m1.idcliente),m1.transaccion
from miTable m1
where m1.transaccion = (Select max(m2.Transaccion)
from miTabla m2
where m1.idcliente = m2.idCliente ).


Esto era exactamente lo que buscaba y funciona perfectamente. Muchas gracias!!! :)


La franja horaria es GMT +2. Ahora son las 21:29:48.

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