Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-10-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
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?
Responder Con Cita
  #2  
Antiguo 20-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, prueba la siguiente:

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

Me comentas como te fue.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 20-10-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
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.

Última edición por noob fecha: 20-10-2008 a las 18:19:59.
Responder Con Cita
  #4  
Antiguo 20-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por noob Ver Mensaje
Me da error de sintaxis...
Código SQL [-]
Select Sum(cantidad) from tabla between 1 and 60

¿Y Ahora?
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 20-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Perdón amigo, el anterior está mal:

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

Ahora sí
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 20-10-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Código SQL [-]Select Sum(cantidad) from tabla between 1 and 60


¿Y Ahora?
También da error de sintaxis.
Responder Con Cita
  #7  
Antiguo 20-10-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Perdón amigo, el anterior está mal:

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


Ahora sí
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.
Responder Con Cita
  #8  
Antiguo 20-10-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #9  
Antiguo 20-10-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Cita:
Empezado por roman Ver Mensaje
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!

Última edición por noob fecha: 20-10-2008 a las 19:19:40.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema de Consulta con MySQL y ADO enecumene MySQL 2 20-10-2008 17:05:13
problema con sub-consulta Mysql enecumene MySQL 6 06-03-2008 16:07:25
Consulta dificil en mysql y sql Arturo SQL 1 08-11-2006 13:39:41
Consulta dificil mysql taru MySQL 6 03-09-2006 03:29:55
consulta a mysql jfontane PHP 2 10-06-2003 19:11:57


La franja horaria es GMT +2. Ahora son las 00:01:27.


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
Copyright 1996-2007 Club Delphi