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 originalSELECT MAX(LIBROS.PRECIO * PEDIDO_CONTIENE_LIBRO.CANTIDAD)
FROM LIBROS,CLIENTES,PEDIDO_CONTIENE_LIBRO,PEDIDOS,(
SELECT SUM(LIBROS.PRECIO * PEDIDO_CONTIENE_LIBRO.CANTIDAD )
FROM LIBROS, CLIENTES, PEDIDOS, PEDIDO_CONTIENE_LIBRO
WHERE CLIENTES.ID_CLIENTE = PEDIDOS.ID_CLIENTE
AND LIBROS.ID_LIBRO = PEDIDO_CONTIENE_LIBRO.ID_LIBRO
AND PEDIDOS.ID_COMPRA = PEDIDO_CONTIENE_LIBRO.ID_COMPRA
GROUP BY (pedido_contiene_libro.id_compra)
)
FROM LIBROS,PEDIDO_CONTIENE_LIBRO,LIBROS,CLIENTES
WHERE PEDIDO_CONTIENE_LIBRO.ID_LIBRO=LIBROS.ID_LIBRO
AND LIBROS.ID_LIBRO = PEDIDO_CONTIENE_LIBRO.ID_LIBRO
AND PEDIDOS.ID_COMPRA = PEDIDO_CONTIENE_LIBRO.ID_COMPRA
;
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?