CONSULTA SQL
Publicado por Guille (5 intervenciones) el 24/11/2017 16:16:28
Hola, estoy haciendo una consulta que consite en dado un id de un cliente y un mes, consultar las ventas de ese cliente en ese mes y devolver el producto que más ha comprado, tengo tabla Ventas que contiene la fecha y el id del cliente, tengo tabla registrado que contiene el id de la venta, unidades, e id del producto, y tengo la tabla productos con sus datos, hago lo siguiente:
SELECT `id`,`nombre`,`precio`,`unidades`,`activo` FROM producto AS Productos JOIN (SELECT *, MAX(Suma) "Maximo" FROM (SELECT `producto_id`, SUM(`unidades`) "Suma" FROM registrado AS Reg JOIN (SELECT `id` FROM `venta` WHERE MONTH(fecha) = 11 AND `cliente_id` = 4)AS Venta WHERE Reg.venta_id = Venta.id GROUP BY `producto_id`) AS tala GROUP BY `producto_id`) AS MaxSuma WHERE Productos.id = MaxSuma.producto_id AND MaxSuma.Suma = MaxSuma.Maximo
El problema es que no se como ponerlo según el máximo, en la que he puesto el maximo es segun id, luego te saca todos los productos y no funciona, si selecciono el maximo sin el group by solo me deja la primera fila de la tabla, y me quita el resto, podéis ayudarme?
SELECT `id`,`nombre`,`precio`,`unidades`,`activo` FROM producto AS Productos JOIN (SELECT *, MAX(Suma) "Maximo" FROM (SELECT `producto_id`, SUM(`unidades`) "Suma" FROM registrado AS Reg JOIN (SELECT `id` FROM `venta` WHERE MONTH(fecha) = 11 AND `cliente_id` = 4)AS Venta WHERE Reg.venta_id = Venta.id GROUP BY `producto_id`) AS tala GROUP BY `producto_id`) AS MaxSuma WHERE Productos.id = MaxSuma.producto_id AND MaxSuma.Suma = MaxSuma.Maximo
El problema es que no se como ponerlo según el máximo, en la que he puesto el maximo es segun id, luego te saca todos los productos y no funciona, si selecciono el maximo sin el group by solo me deja la primera fila de la tabla, y me quita el resto, podéis ayudarme?
Valora esta pregunta


0