PDA

Ver la Versión Completa : Consulta un poco particular.


syntetiko
25-04-2005, 20:49:52
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:

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
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
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
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
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!!! :)