articulo mas vendido entre dos fechas con mysql

Publicado por Joaquin Rossi
hace 6 años

<p>Hola! miren, estoy haciendo un programa en el que se registra la compra de varios articulos.</p>

<p>Estoy trabajando con mysql y tengo varias tablas entre ellas: clientes, articulos y ventas.</p>

<p>Y lo que necesito es que el usuario pueda seleccionar dos fechas y despues obtenga el detalle del producto más vendido entre esas dos fechas!</p>

<p>Las tablas articulos y ventas son mas o menos asi:</p>

<p>articulos: id, codigo, precio, stock</p>

<p>ventas: id, cliente, fecha, articulo, cantidad</p>

<p>Como podria hacer la consulta en mysql para obtener ese resultado?? Gracias !!</p>

Tags mysql
Respuesta de Lucas
hace 6 años

<p>1.- select * from articulos where id = (select top 1 id from ( select articulo as id, sum(ventas.cantidad) as total from ventas where ventas.fecha >= fecha_menor and ventas.fecha <= fecha_mayor order by cantidad <o bien, total> des))</p>

<p>para la selección de las fechas,  por lo que veo, podés usar el between:</p>

<p>... from ventas where ventas.fecha between fecha_menor, fecha_mayor ...</p>

<p>lo que se hace es: primero hace la suma de la cantidad para ese artículo y hace una vista como: id articulo, total. Al estar ordenado descendente por la cantidad, el primero tendrá el valor más alto en cantidad. Entonces seleccionás con top, del primer registro del tope, su código de artículo. Entonces la primer sentencia select toma a ese id artículo de la instrucción anterior y seleccióna todo.</p>

<p>El código no lo probé, por lo que puede tener errores de sintaxis, pero la lógica pienso que es la correcta. Saludos!</p>

Respuesta de Ø Ale Herrera
hace 6 años

<p>yo haria algo asi</p>

<pre class="prettyprint"> SELECT TOP 1 * FROM ( SELECT id, SUM(Cantidad) as Cantidad FROM articulos WHERE fecha between $fechainicio AND $fechafin GROUP BY id) as A ORDER BY Cantidad</pre>

<p> </p>

Para poder participar del foro necesitas iniciar sesión con tu cuenta. Si no tienes una puedes registrarte utilizando tu email!

Iniciar sesión Quiero registrarme