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

SELECT MAX SUM(x*y)

Estas en el tema de SELECT MAX SUM(x*y) en el foro de Mysql en Foros del Web. Buenas tardes estoy haciendo esta consulta: SELECT v.dni_cliente, SUM(v.unidades*m.precio) as importe FROM ventas_vista as v INNER JOIN medicamento as m ON v.cod_med=m.cod_med GROUP BY v.dni_cliente ...
  #1 (permalink)  
Antiguo 01/07/2013, 13:18
 
Fecha de Ingreso: abril-2008
Ubicación: España
Mensajes: 58
Antigüedad: 16 años, 7 meses
Puntos: 1
SELECT MAX SUM(x*y)

Buenas tardes estoy haciendo esta consulta:

SELECT v.dni_cliente, SUM(v.unidades*m.precio) as importe
FROM ventas_vista as v INNER JOIN medicamento as m
ON v.cod_med=m.cod_med

GROUP BY v.dni_cliente

Y el resultado que me saca son todos los clientes con el total gastado.

Yo quisiera que me sacara solo un único cliente que sea el que mas ha gastado!

He intentado cosas asi:

---------------------------------------------------------------------------
SELECT v.dni_cliente, SUM(v.unidades*m.precio) as importe
FROM ventas_vista as v INNER JOIN medicamento as m
ON v.cod_med=m.cod_med

GROUP BY v.dni_cliente
HAVING MAX(importe)
--------------------------------------------------------------------------
Pero asi no muestra ningun cliente con sus gastos...

O esto otro:

-------------------------------------------------------------------------
SELECT v.dni_cliente, MAX(SUM(v.unidades*m.precio)) as importe
FROM ventas_vista as v INNER JOIN medicamento as m
ON v.cod_med=m.cod_med

GROUP BY v.dni_cliente
---------------------------------------------------------------------------------
Pero da este error:
Invalid use of group function

¿Alguien sabe como hacerlo?

Muchas gracias!
  #2 (permalink)  
Antiguo 01/07/2013, 13:28
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 18 años, 1 mes
Puntos: 6
Respuesta: SELECT MAX SUM(x*y)

Código mysql:
Ver original
  1. SELECT v.dni_cliente, SUM(v.unidades*m.precio) as importe
  2. FROM ventas_vista as v INNER JOIN medicamento as m
  3. ON v.cod_med=m.cod_med
  4.  
  5. GROUP BY v.dni_cliente
  6.  
  7. ORDER BY importe ASC
  8.  
  9. LIMIT 0,1
__________________
No todo lo que se hace en segundo plano es AJAX
  #3 (permalink)  
Antiguo 01/07/2013, 13:50
 
Fecha de Ingreso: abril-2008
Ubicación: España
Mensajes: 58
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: SELECT MAX SUM(x*y)

Muchas gracias!

Lo que haces es ordenar los importes de mayor a menor y después le dices que saque solo el primero de ellos! ejej

Lo único es que tengo que ordenarlo de forma DESC sino me saca el resultado mas pequeño!

Gracias de nuevo!

Etiquetas: join, max, select
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 17:54.