Club Delphi  
    Paypal   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

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 10-06-2004
Avatar de cbrrr
cbrrr cbrrr is offline
Miembro
 
Registrado: jun 2004
Posts: 57
Poder: 23
cbrrr Va por buen camino
se supone que precfinal = Cantidad*Precunit, no?

Pues bien, a ese SQL está algo "mal"
1.- Lo sobra la unión (join) con la tabla maestra (teniendo el campo por el que buscar en la tabla detalle, es una tontería consumir recursos para hacer una join)
2.- Al quitar la join, le falta un parámetro, que es Consumo del cual quieres calcular la suma, sino te lo calculará de todo (cláusula where)

por lo que te podría quedar algo así:
Código SQL [-]
   select sum(Precfinal) as suma
   from det_producto
   where consumo = :consumo
y desde código hacer algo así:
Código Delphi [-]
    procedure TModuloDatos.TblDetproductoAfterPost(DataSet: TDataSet);
  Var
   x: Float;
  begin
     Consulta1.Close;
     Consulta1.ParamByName('consumo').AsInteger:=TblConsumos.FieldByName('IDConsumo').AsInteger;
     Consulta1.Open;
     If Consulta1.IsEmpty Then
       x := 0
     Else
       x := Consulta1.FieldByName('Suma').AsFloat;
     
     TblConsumos.Edit;
     TblConsumos.FieldByName('Totalfactu').AsFloat := x;
     TblConsumos.Post;
  end;
Consejo: acostúmbrate a no usar variables de tipo Variant cuando sabes, de entrada, el tipo de dato que será
Consejo2: dentro de un mismo formulario/módulo de datos, no hace falta que hagas referencia a éste

Espero que te sirva
__________________
Si no tienes algo que decir más importante que el silencio, cállate
Responder Con Cita
 



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 10:22:53.


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