Ver Mensaje Individual
  #12  
Antiguo 10-06-2004
Avatar de cbrrr
cbrrr cbrrr is offline
Miembro
 
Registrado: jun 2004
Posts: 57
Reputación: 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