Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-08-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile Sumar campo que no existe...

Buenas de nuevo por aquí Me gustaría que ustedes me ayudaran con este otro conflicto, siempre y cuando puedan echarme una mano (Ojalá ). El problema es el siguiente: He calculado el la sumatoria de un campo, utilizando el método de [Caro] en este hilo y he hecho algunas de las operaciones para calcular campos usando este hilo. Pero ahora es indispensable, sacar la sumatoria de un campo, en un campo como está calculado según el segundo hilo que mostré. No lo sumaría, porque no existe, porque sólo está ahí para mostrar.

¿Cuál sería la solución para sumar los valores de este campo entre sí?

Muchas gracias de antemano.
__________________
Aprendiz de Embarcadero RAD Studio...
Responder Con Cita
  #2  
Antiguo 05-08-2008
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 HombreGordo, por lo que he visto a la pasada el segundo hilo, le has dado un nombre a ese calculo "RESULTADO", entonces tienes que utilizar resultado para hacer la sumatoria.

Código Delphi [-]
....................
 Total := Total + MiTabla.FieldbyName('RESULTADO').ASCurrency;
....................

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
  #3  
Antiguo 05-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola hombregordo,

tomando literalmente el titulo, no se puede sumar un campo que no existe. Si lo que quieres es sumar los resultados de varios campos calculados anteriormente, deberias :
- o bien guardar los valores de los resultados que posteriormente quieres sumar en variables.
- o ejecutar todo en una unica consulta.

Mirando los hilos anteriores (muy por encima) :

- resultado := unidades * multiplicador, con cierta condicion
- totalganancia := sumatorio de ganancias.

Creo que lo que quieres es sumar varios resultados segun ciertas condiciones (corrigeme si me equivoco, pues me he liado un poco) entonces o bien creas varias consultas y vas sumando

Código Delphi [-]
resultado := 0;
q.Active := false;
q.sql.text := 'select unidades * ' + editmult1.text + ' as RESULTADO from tabla where ---condiciones 1 ---';
q.active := true;
resultado := resultado + q.FieldByName('RESULTADO').Asfloat;

q.Active := false;
q.sql.text := 'select unidades * ' + editmult2.text + ' as resultado from tabla where ---condiciones 2 ---';
q.Active := true;
resultado := resultado + q.FieldByName('resultado').asfloat;
...
showmessage(FormatFloat('0.0000',resultado);


o bien creas una unica consulta sql compleja
Código Delphi [-]
q.active := false;
q.sql.text := 'select ((select unidades * ' + mult1.text + ' as res1 from tabla where --cond1--)  +  (select unidades * ' + mult2.text + ' as res2 from tabla where --cond2--) + ... + (select unidades * ' + multn.txt + ' as resn from tabla where ---condn---) as resultado_total from tablas';
q.active := true;
ShowMessage(FormatFloat('0.000',q.FieldByname('resultado_total').Asfloat);

Última edición por coso fecha: 05-08-2008 a las 13:45:38.
Responder Con Cita
  #4  
Antiguo 05-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
tambien puedes hacer, de la primera manera (por variables) mediante un bucle

Código Delphi [-]
var
   resultado : float;
   cn : TStringList;
   ml  : TStringList;
begin
   resultado := 0;
   cn := TStringList.Create;
   ml := TStringList.Create;
  
   cn.Add('--condicion 1 --'); //data = 01/01/1999, por ejemplo
   cn.Add('--condicion 2 --');
   ...
   cn.Add('--condicion n --');

   ml.Add(multiplicador1.Text);
   ml.Add(multiplicador2.text);
   ...
   ml.Add(multiplicadorn.text);

   resultado := 0;
   for i := 0 to cn.Count - 1 do
   begin
          q.Active := false;
          q.SQL.Text := 'select unidades * ' + ml[i] + ' as RESULTADO from tabla where ' + cn[i];
          q.Active := true;
          resultado := resultado + q.FieldByName('RESULTADO').Asfloat;
   end;
   ml.Free;
   cn.Free;
end;

venga espero q te sirva. Saludos.

Última edición por coso fecha: 05-08-2008 a las 13:46:05.
Responder Con Cita
  #5  
Antiguo 05-08-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile ¡Hey!

Hola de nuevo chicos, gracias por la atención, analizaré los códigos y veré cual me sirve. En este mismo post dejaré los resultados de lo que pasó.

De haber sabido lo de las consultas SQL complejas creo que me hubiera ahorrado muchos problemas jajaja.

EDITADO: Funcionó a la perfección, tomé el modelo de código de sumar campo y lo adapté con las sugerencias que agregó coso. Gracias por invertir su tiempo en este hilo.
__________________
Aprendiz de Embarcadero RAD Studio...

Última edición por HombreGordo fecha: 06-08-2008 a las 15:28:42.
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
Sql sumar campo sum() teclilla SQL 27 17-02-2008 18:50:15
Sumar un campo al ser checkeado en un ListView Avellas OOP 3 15-11-2007 21:39:50
Como sumar un campo entero y un real Maury Manosalva OOP 2 31-05-2007 19:41:14
Saber si un campo existe Fita Conexión con bases de datos 2 04-10-2005 19:10:10
Sumar un campo en dos tablas Ignacio SQL 2 27-09-2004 01:00:38


La franja horaria es GMT +2. Ahora son las 04:59:07.


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