Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

3 mejores clientes por año

Estas en el tema de 3 mejores clientes por año en el foro de Mysql en Foros del Web. Llevo unas cuantas horas y estoy atascado en esto. Manejo una sola tabla donde almaceno cliente-fecha-importe-pedido con 2500 registros y lo que quiero saber es ...
  #1 (permalink)  
Antiguo 13/09/2007, 15:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 19
Antigüedad: 16 años, 7 meses
Puntos: 0
3 mejores clientes por año

Llevo unas cuantas horas y estoy atascado en esto.
Manejo una sola tabla donde almaceno
cliente-fecha-importe-pedido con 2500 registros y lo que quiero saber es
lo indicado en el titulo.
Intento anidar consultas sumando las ventas por cliente y año y luego intento sacar los tres mejores para cada año.
Quisiera hacerlo en una sola sentencia, eso sí, anidada las veces que sea necesario pero no lo consigo.
Llego a algo así,
SELECT t.cliente, t.total, t.año
FROM
(SELECT Max(t.total) as maximo, t.año
FROM
(SELECT year( fecha ) AS año, cliente, sum( parcial ) AS total
FROM PEDIDOS
GROUP BY year( fecha ) , cliente
)
t
GROUP BY t.año)
m
WHERE t.total = m.maximo
Agradecería ayuda
  #2 (permalink)  
Antiguo 25/09/2007, 17:52
 
Fecha de Ingreso: septiembre-2007
Mensajes: 19
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: 3 mejores clientes por año

la respuesta es
SELECT cliente, total, año
FROM TOTALES AS CTE
WHERE 3 > (
SELECT count( * )
FROM TOTALES
WHERE año = CTE.año
AND total > CTE.total )
ORDER BY año DESC , total DESC
  #3 (permalink)  
Antiguo 25/09/2007, 19:36
Avatar de kunndry  
Fecha de Ingreso: abril-2004
Ubicación: Alicante / España
Mensajes: 247
Antigüedad: 20 años
Puntos: 0
Re: 3 mejores clientes por año

Un cliente puede tener varias filas? es decir, más de un pedido?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:40.