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 --'); 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.