Você não vai conseguir usar a função sum na clausura "WHERE", a maneira é fazer um Sub-select Close;
Sql.Text := ' select * from '
+' ( '
+' Select produto,decricao,preço,unidade , sum(sugestadecompra) SugCalc from produto '
+' Where produto=:codigo '
+' Group By produto,decricao,preço,unidade '
+' )x '
+' where x.SugCalc > 1 '
+' Order By x.produto,x.decricao,x.preço,x.unidade ';
Open; você pode usar um select como se fosse uma tabela dando um select ... from ( select ... from minha_tabela.... ) x, esse "X" é o apelido q dei ao select, ai quando você quiser referenciar algum campo q esse select retorna utilize <Apelido>.<nome_campo> ex: "x.nome_campo" espero ter ajudado!