Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-04-2005
syntetiko syntetiko is offline
Miembro
 
Registrado: may 2003
Ubicación: Tenerife
Posts: 11
Poder: 0
syntetiko Va por buen camino
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
__________________
Recibe un cordial saludo! :)
Responder Con Cita
  #2  
Antiguo 25-04-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 30-04-2005
syntetiko syntetiko is offline
Miembro
 
Registrado: may 2003
Ubicación: Tenerife
Posts: 11
Poder: 0
syntetiko Va por buen camino
Gracias Marcos,

Tu consulta no me sirve, ya que me devuelve el producto con mayor "idproducto", y no el producto con mayor "idtransaccion".
__________________
Recibe un cordial saludo! :)
Responder Con Cita
  #4  
Antiguo 30-04-2005
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
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
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
Responder Con Cita
  #5  
Antiguo 11-05-2005
syntetiko syntetiko is offline
Miembro
 
Registrado: may 2003
Ubicación: Tenerife
Posts: 11
Poder: 0
syntetiko Va por buen camino
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.
__________________
Recibe un cordial saludo! :)
Responder Con Cita
  #6  
Antiguo 12-05-2005
PeLuCa PeLuCa is offline
Miembro
 
Registrado: abr 2005
Posts: 20
Poder: 0
PeLuCa Va por buen camino
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 ).
Responder Con Cita
  #7  
Antiguo 14-05-2005
syntetiko syntetiko is offline
Miembro
 
Registrado: may 2003
Ubicación: Tenerife
Posts: 11
Poder: 0
syntetiko Va por buen camino
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!!!
__________________
Recibe un cordial saludo! :)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:18:37.


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
Copyright 1996-2007 Club Delphi