Hola de nuevo radge, no hay problema si lo recuperas como cadena, estas seguro que la consulta que le pasas esta bien, porque de ambas formas si funciona, en tu codigo veo que añades la consulta con Add, deberías limpiar tu propiedad SQL cada vez que ejecutes tu consulta. Has probado la segunda forma, puedes hacer la prueba de colocar tu consulta sin ningun alias y recuperarlo con Fields.
Código Delphi
[-]
qry_total.SQL.Clear;
cadenaSQL := 'Select sum(total) from Albaran';
qry_total.SQL.add(cadenaSQL);
qry_total.open;
TotalAlbara := qry_total.Fields[0].asString;
Saluditos