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 19-02-2004
txemag txemag is offline
Miembro
 
Registrado: feb 2004
Posts: 11
Poder: 0
txemag Va por buen camino
Question Pregunta sobre SQL a los gurus...(BALANCE)

A ver si el oraculo me ilumina con su "sapiencia", estoy buscando una consulta los suficientemente birguera para calcular el balance de una tabla, es decir:

Si tenemos los datos:

Debe Haber Balance
- 9 9
3 - 6
1 - 5
- 2 7


La cosa es como poder sacar la columna balance mediante una consulta, y asi no tener que grabar fisicacamente el campo. He buscado por inet y veo que varias personas preguntan lo mismo, pero no hay ninguna respuesta que solucione el problema.

Animo y gracias....
Responder Con Cita
  #2  
Antiguo 19-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.935
Poder: 27
delphi.com.ar Va por buen camino
¿Qué es lo que sería Balance?... ¿Qué motor utilizas?... ¿Puedes usar un store procedure?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 19-02-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Como comenta el compañero, la solución a tu problema está en utilizar un procedimento almacenado. Pero si quieres una orientación sobre como hacerlo, deberás indicar que servidor sql utilizas, puesto que cada uno tiene sus características propias.

Si en lugar de utilizar un servidor sql, utilizas una tabla plana (Access, dBase, Paradox, ...), olvídate del tema, y ve pensando en como hacerlo en el Dataset de Delphi.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 19-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Select debe, haber, haber - debe balance
from tabla;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 20-02-2004
txemag txemag is offline
Miembro
 
Registrado: feb 2004
Posts: 11
Poder: 0
txemag Va por buen camino
Wink

Cita:
Empezado por guillotmarc
Como comenta el compañero, la solución a tu problema está en utilizar un procedimento almacenado. Pero si quieres una orientación sobre como hacerlo, deberás indicar que servidor sql utilizas, puesto que cada uno tiene sus características propias.
Lo primero daros las gracias, el motor de base de datos que uso es FIREBIRD 1.5, si me podeis orientar con ese stored procedure me hariais un buen favor.

Salu2...
Responder Con Cita
  #6  
Antiguo 20-02-2004
txemag txemag is offline
Miembro
 
Registrado: feb 2004
Posts: 11
Poder: 0
txemag Va por buen camino
Hola.

En Firebird es muy sencillo de hacer. Simplemente debes crear un procedimiento almacenado de este estilo :

Código:
SET TERM ^ ;
CREATE PROCEDURE BALANCE
RETURNS (
	DEBE NUMERIC(18,4),
	HABER NUMERIC(18,4),
	SALDO NUMERIC(18,4))
AS
begin
  SALDO = 0;
  for select DEBE, HABER
	  from TABLA
	  into :DEBE,  :HABER
  do begin
	SALDO = SALDO + coalesce(HABER, 0) - coalesce(DEBE, 0);
	suspend;
  end
end
^
SET TERM ; ^
En la aplicación solo tienes que hacer una consulta del tipo :

select * from BALANCE

Saludos.

Última edición por guillotmarc fecha: 20-02-2004 a las 09:59:59.
Responder Con Cita
  #7  
Antiguo 20-02-2004
txemag txemag is offline
Miembro
 
Registrado: feb 2004
Posts: 11
Poder: 0
txemag Va por buen camino
Muchas gracias, funciona perfectamente


Eres grande guillotmarc.

Salu2
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


La franja horaria es GMT +2. Ahora son las 12:31:01.


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