Hola Josep.
La verdad que no se que decirte, este es el código que use en la prueba:
Código Delphi
[-]
procedure TForm1.Edit1Change(Sender: TObject);
var
C: string;
begin
if ComboBox1.Text = 'RAO_COMERCIAL' then
C:= 'B.'+ ComboBox1.Text
else
C:= 'A.'+ ComboBox1.Text;
with OrdenarGrid do
begin
Close;
SQL.Clear;
SQL.Add('SELECT A.IDCOMPRA, A.DATA_COMPRA, A.IDPROVEIDOR, B.RAO_COMERCIAL');
SQL.Add('FROM TR0004C A INNER JOIN TR0002 B ON B.IDPROVEIDOR = A.IDPROVEIDOR');
SQL.Add(Format('AND UPPER(%s) LIKE UPPER(:PARAM)', [C]));
SQL.Add(Format('ORDER BY %s',[C]));
ParamByName('PARAM').AsString:= '%'+Edit1.Text+'%';
Open;
end;
end;
Y como podrás ver, filtra de modo correcto:
Saludos