Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Consulta de MySQL (https://www.clubdelphi.com/foros/showthread.php?t=60952)

noob 20-10-2008 17:53:12

Consulta de MySQL
 
Buenas, tengo una tabla Producto con los campos: Codigo y Cantidad tal que así:

+-+--+
|1|10|
|2|12|
|3|34|
|4|16|
|5|64|
|6|96|
|7|84|
|8|46|
+-+--+

Quiero ejecutar una sentencia SQL para obtener los registros hasta que la cantidad acumulada del campo cantidad sea igual o mayor a 50, es decir, cojo el primero y ya tengo 10, cojo el segundo y ya tengo 22, cojo el tercero y ya tengo 56 y en este momento ya no cojo más porque 56 es mayor que 50.

Me quedaría:

+-+--+
|1|10|
|2|12|
|3|34|
+-+--+

¿Cómo puedo hacer esto usando sentencias de MySQL?

enecumene 20-10-2008 18:08:46

Hola, prueba la siguiente:

Código SQL [-]
Select Sum(cantidad) from tabla between cantidad = 1 and cantidad = 60

Me comentas como te fue.

Saludos.

noob 20-10-2008 18:11:34

Me da error de sintaxis porque sería:

Código SQL [-]
select Sum(Cantidad) from Producto where Cantidad between 1 and 50;

De todos modos no funciona.

enecumene 20-10-2008 18:15:33

Cita:

Empezado por noob (Mensaje 321140)
Me da error de sintaxis...

Código SQL [-]
Select Sum(cantidad) from tabla between 1 and 60

¿Y Ahora?

enecumene 20-10-2008 18:20:05

Perdón amigo, el anterior está mal:

Código SQL [-]
Select Sum(cantidad) from tabla where cantidad between 1 and 60

Ahora sí :D

noob 20-10-2008 18:21:23

Cita:

Empezado por enecumene (Mensaje 321145)
Código SQL [-]Select Sum(cantidad) from tabla between 1 and 60


¿Y Ahora?

También da error de sintaxis.

noob 20-10-2008 18:22:47

Cita:

Empezado por enecumene (Mensaje 321148)
Perdón amigo, el anterior está mal:

Código SQL [-]Select Sum(cantidad) from tabla where cantidad between 1 and 60


Ahora sí :D

Ahora no da error de sintaxis pero me devuelve un valor numérico, yo lo que quiero es que me retorne:

+-+--+
|1|10|
|2|12|
|3|34|
+-+--+

que son los registros necesarios para que la cantidad acumulada sume 50 unidades o más.

roman 20-10-2008 19:00:18

Código SQL [-]
set @suma:=0;

select @suma,@suma:=@suma+cantidad,codigo,cantidad
from producto
where @suma <= 50;

So dos consultas, una después de la otra.

// Saludos

noob 20-10-2008 19:13:00

Cita:

Empezado por roman (Mensaje 321162)
Código SQL [-]set @suma:=0; select @suma,@suma:=@suma+cantidad,codigo,cantidad from producto where @suma <= 50;


So dos consultas, una después de la otra.

// Saludos

Ahora obtengo esto:


+--+--+-+--+
|0 |10|1|10|
|10|22|2|12|
|22|56|3|34|
+--+--+-+--+


Muchas gracias!


La franja horaria es GMT +2. Ahora son las 19:14:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi