Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-07-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
Suma de columna con limite en SQL Server

Hola que tal de nuevo aqui molestando a la comunidad , espero me puedan echar una mano con eso, lo que pasa es que estoy haciendo una aplicacion en donde el usuario escogera los parametros para presupuesto, fecha etc, y a traves de estos parametros hago la consulta.

Lo que necesito es que me sume una columna, pero esa suma seran a partir de los parametros que escoja el usuario, entonces, lo que requiero es que me sume una columna de la tabla, pero teniendo como limite una cantidad, y apartir de la cual termine la suma, me muestre esos resultados de los regstros que hayan sido sumados, que por obvias razones estan entre las condicionantes qu eel usuario eligio.

un ejemplo seria:

tengo en una Tabla una columna que quiero sumar, estos datos:

ID - Cantidad
1.....1
2.....2
3.....3
4.....2
5.....3
6.....1

entonces yo escojo fechas, y una cantida que pongo como como limite de 5 dentro de un Edit para la suma, los registros que dan con esta condicion que el usuario escoje son:

ID - Cantidad
2.....2
3.....3
6.....1

entonces necesito, que me sume la columna Cantidad, y que sume todos esos registros hasta que llegue al limite que dio el usuario como limite 5, los unicos datos a mostrar segun mi condicion, serian el

ID - Cantidad
2.....2
3.....3

sumados dan 5, el limite que yo estoy poniendo en un Edit, no se como hacer eso, espero me puedan ayudar, y espero a ver sido claro con lo que no puedo hacer;

hago el Select de esta manera: (estos datos de fecha y importe, yo los paso por parametros, y estan bien, por eso no hay problema, este query es en SQL, yo lo tengo como parametros en delphi)

Código SQL [-]
Select SUM(Importe) AS SUMATORIA from Trama WHERE (FechaCarga Between '02/02/2011' and '01/06/2011') and (Importe Between 10 and 50)


pero lo que quiero es que me empiece a contar apartir del primer registro que cumpla con los parametros, y hasta la cantidad limite, y teniendo esos registros que los muestre, espero alguien me pueda ayudar,
intente poner un HAVING pero ese solo es un condicionante para los registros individuales, no para la sumatoria en conjunto, espero me puedan ayudar y de ante mano muchisimas gracias, espero a ver sido claro

necesito como limitar la suma, hasta una cantidad en especifico
Responder Con Cita
  #2  
Antiguo 07-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ivantj24.

Si no te entendí mál creo que la consulta sería:
Código SQL [-]
SELECT ID, CANTIDAD FROM TU_TABLA
WHERE FECHA BETWEEN :FECHA1 AND :FECHA2
GROUP BY ID, CANTIDAD
HAVING SUM(PRECIO) <= :CANT

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 07-07-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
hola que tal ecfisa, gracias por tomarte la molestia de ayudarme, intente lo que dijes pero con mis parametros y no me funciono, resulta que al parecer SUM('campo') <= 100 hace una comparacion de cada registro, pero no lo suma, me muestra todos los registros, no se si estoy haciendo algo mal o no se,

asi pongo mi consulta:

Cita:
Select TramaID, FechaCarga, Importe, Tipo From Trama
WHERE (FechaCarga Between '02/02/2011' and '01/06/2011') and (Importe Between 10 and 50)
Group by TramaID, FechaCarga, Importe, Tipo
Having SUM(Importe) <= 100
esto lo hago en sql, y me arroja todos los registros que esten dentro de la condicion between, pero no me suma la columna, me muestra importe, que es el campo al que estoy sumando, pero en general, me salen todos los datos,

TramaID ----------- FechaCarga --------Tipo--------------Importe
1-------------------17/01/2010----------0---------------- 50


osea me salen todos los importes menores de 100, pero no suma, espero me puedan ayudar, por que lo que quiero es que sume toda la columna, hasta donde la suma de, un ejemplo, hasta donde la suma sea 100, (este valor lo designa el usuario)
gracias efcia por la ayuda, pero al parecer aun no queda, saludos espero me puedan echar la mano con esto
Responder Con Cita
  #4  
Antiguo 07-07-2011
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 19
celades1 Va por buen camino
Hola

Yo lo haria con un procedimiento, con una sola sentencia no lo veo

saludos
Responder Con Cita
  #5  
Antiguo 07-07-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
Alguna idea con ese Procedimiento Almacenado? por que hice varios intentos anoche y nada, me dijeron que usara sub consultas, querys dentro de querys pero no di en el blanco, a lo mejor hice algo mal, y ese es mi problema, como hago eso, si tienes una idea con ese SP te agradeceria la ayuda, o la ilustracion de como poder hacerlo, saludos y muchas gracias de antemano
Responder Con Cita
  #6  
Antiguo 08-07-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola ivantj24, a mi se me ocurre con subconsultas sobre la misma tabla:

Código Delphi [-]
Select t.id, t.importe 
From Trama t left join Trama t1
        on (t.id>=t1.id)
Group By t.id, t.importe
Having sum(t1.importe)<=5
Order By t.id

Primero has la prueba de esa forma y despues le aumentas tus condicones en el Where.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
Suma de una columna de un DBGRID Pollo2004 Varios 20 29-10-2008 16:58:33
suma de una columna del Report megaredoxk Impresión 3 04-12-2007 14:05:11
suma de una columna en mysql coletaun MySQL 5 09-01-2006 14:29:38
Suma de elementos de una columna Mathom SQL 4 15-12-2005 18:49:24
Suma de Datos de Columna en paradox gersongelabert Tablas planas 2 14-08-2005 06:20:37


La franja horaria es GMT +2. Ahora son las 06:27:33.


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