Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/03/2010, 20:53
T3rryMan
 
Fecha de Ingreso: enero-2010
Ubicación: SJM Lima - Peru
Mensajes: 55
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Ultimo movimiento de un cliente en SQL 2005

Cita:
Iniciado por LucasArt Ver Mensaje
Hola, quiero ser lo mas claro posible, tengo una tabla clientes y una tabla ventas con la siguiente estructura

clientes [ idcliente, nombre]

ventas [ idventa, idcliente, detalle]

lo que intento hacer basicamente es obtener la ultima venta de cada cliente y mostrar los datos del cliente, doy un ejemplo de las tablas y al final el resultado que deseo obtener al cual me es imposible llegar

clientes
idcliente nombre
1 Martin
2 Lucas
3 Rodrigo

ventas
idventa idcliente detalle
1 1 1 pepino
2 1 2 manzanas
3 3 5 mandarinas
4 2 3 peras
5 2 6 naranjas
6 1 8 kiwis
7 3 2 bananas


lo que quiero que me devuelva es el ultimo movimiento de cada cliente

idventa idcliente nombre detalle
5 2 Lucas 6 naranjas
6 1 Martin 8 kiwis
7 3 Rodrigo 2 bananas

el problema es que cuando hago un inner join de ambas tablas me devuelve todos los movimientos. yo quiero solo el ultimo de cada uno, y si hay clientes que no tienen movimientos que no me los muestre

desde ya muchas gracias!!!!
HoLa Lucas

primero saque un subconsulta de ventas ordenandolo por idventa en forma descendente pero solo obtengo un resultado ya que utilizo el TOP 1 con alias SV en donde lo relaciono con C.idcliente ya q con esto por cada cliente sale su ultima venta IDVENTA y despues busco el IDVENTA en mi inner join de 2 tablas clientes y ventas y asi me devuelve unicamente la ultima venta por cada cliente.

Código SQL:
Ver original
  1. SELECT V.idventa ,C.idcliente ,C.nombre ,V.detalle
  2.  FROM clientes C INNER JOIN ventas V ON C.idcliente=V.idcliente
  3.     WHERE
  4.  
  5.    V.idventa IN  (SELECT top 1 SV.idventa FROM ventas SV
  6.                 WHERE SV.idcliente=C.idcliente ORDER BY SV.idventa DESC)
  7.  
  8.     ORDER BY V.idventa

Observar bien cuales son las tablas(2 clientes, ventas) y cuantos alias hay en toda la consulta(3 C, V, SV) SV- le puse por ser subVenta.


www.bitxense.com.pe | Soluciones Informaticas S.A.C. - [email protected]
Cualquier duda soy Jhon Bautista Palomino aqui esta mi correo [email protected] Lima-Peru