Tema: sum(MAX)
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2013, 16:47
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 2 meses
Puntos: 0
sum(MAX)

Buenas noches a todos.
Primero de todo agradeceros vuestro tiempo y vuestra atención.

Vereis, quiero calcular el máximo valor de una suma de prodcutos, vamos, un MAX(SUM), sé que, desgradaciamente no se pueden anillar funciones de agrupación por las bravas, pero estoy intentando hacerlo con subquerys en la clausula from pero no me hace caso.

Tengo una libreria, en la que hay varias tablas, sé que el cliente que más gastó sólo realizó un pedido pero con contenido igual a 1011 dólares.

y quiero que me diga el nombre del cliente que más gastó, esto se hace cin una suybquery y con ayuda de order by desc limit 1, pero claro ¿qué pasaría si hubiera dos o más clientes que hubieran gastado lo mismo siendo ese gasto el máximo? que se perdería información.

así que lo que intento hacer es una consulta con una subconsulta que a su vez tiene una tabla derivada, es decir, la subconsulta sería:

esto es sólo la subquery:

Código SQL:
Ver original
  1. SELECT MAX(LIBROS.PRECIO * PEDIDO_CONTIENE_LIBRO.CANTIDAD)
  2. FROM LIBROS,CLIENTES,PEDIDO_CONTIENE_LIBRO,PEDIDOS,(
  3. SELECT SUM(LIBROS.PRECIO * PEDIDO_CONTIENE_LIBRO.CANTIDAD )
  4. FROM LIBROS, CLIENTES, PEDIDOS, PEDIDO_CONTIENE_LIBRO          
  5. WHERE CLIENTES.ID_CLIENTE = PEDIDOS.ID_CLIENTE
  6. AND LIBROS.ID_LIBRO = PEDIDO_CONTIENE_LIBRO.ID_LIBRO
  7. AND PEDIDOS.ID_COMPRA = PEDIDO_CONTIENE_LIBRO.ID_COMPRA
  8. GROUP BY (pedido_contiene_libro.id_compra)
  9. )
  10.  
  11. FROM LIBROS,PEDIDO_CONTIENE_LIBRO,LIBROS,CLIENTES
  12. WHERE PEDIDO_CONTIENE_LIBRO.ID_LIBRO=LIBROS.ID_LIBRO
  13. AND LIBROS.ID_LIBRO = PEDIDO_CONTIENE_LIBRO.ID_LIBRO
  14. AND PEDIDOS.ID_COMPRA = PEDIDO_CONTIENE_LIBRO.ID_COMPRA
  15. ;


ESTO QUIERO QUE ME EL MÁXIMO DEL SUM, QUE ES 1011, PERO ME DEVUELVE 945 QUE ES EL MAXIMO DE CADA PEDIDO, DE CADA FILA, EN DEFINITIVA, LA QUERY SÓLO ME HACE LA QUERY PRINCIPAL, PASA DE LARGO Y ES COMO SI LA SUBQUERY NO EXISTIERA.

¿alguna ayuda por favor?