Nahim Postado Junho 19, 2008 Denunciar Share Postado Junho 19, 2008 Amigos novamente venho recorre a voces.Estou com o sequinte problema.rea lizo a sequinte SQLClear;Sql.ClearSql.add('Select produto,decricao,preço,unidade , sum(sugestadecompra) from produto');Sql.add('Where produto=:codigo');Sql.add('and Sum(sugestaodecompra)>1');Sql.add('Group By produto,decricao,preço,unidade');Sql.add('Order By produto,decricao,preço,unidade');Params[0].Asinteger:=XOpen;Isso ai. e o sequinte a query e bem maior mas e basicamente isso aiO meu proble e e passar na clausura WHERE um campo calculado com SUM e filtrar por elealguém já fez algo parecido? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Erso Postado Junho 20, 2008 Denunciar Share Postado Junho 20, 2008 (editado) Você não vai conseguir usar a função sum na clausura "WHERE", a maneira é fazer um Sub-selectClose; 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! Editado Junho 20, 2008 por Erso Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Morpheus -- Postado Junho 22, 2008 Denunciar Share Postado Junho 22, 2008 O meu proble e e passar na clausura WHERE um campo calculado com SUM e filtrar por elealguém já fez algo parecido?se você estiver usando um banco de dados tipo MySQL ou Firebird (Paradox, não tenho certeza...), você pode fazer uso da cláusula HAVING. Ela se aplica justamente num caso como este seu:Select produto, decricao, preço, unidade, sum(sugestadecompra) from produto Where produto=:codigo Group By produto, decricao, preço, unidade Having Sum(sugestaodecompra)>1 Order By produto, decricao, preço, unidadedê uma olhada neste link.t+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nahim Postado Junho 23, 2008 Autor Denunciar Share Postado Junho 23, 2008 Caras vou testar aqui mas muito obrigado mesmo Ai essa ai e fina By Nahim Muito Obrigado mesmo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Nahim
Amigos novamente venho recorre a voces.
Estou com o sequinte problema.
rea lizo a sequinte SQL
Clear;
Sql.Clear
Sql.add('Select produto,decricao,preço,unidade , sum(sugestadecompra) from produto');
Sql.add('Where produto=:codigo');
Sql.add('and Sum(sugestaodecompra)>1');
Sql.add('Group By produto,decricao,preço,unidade');
Sql.add('Order By produto,decricao,preço,unidade');
Params[0].Asinteger:=X
Open;
Isso ai. e o sequinte a query e bem maior mas e basicamente isso ai
O meu proble e e passar na clausura WHERE um campo calculado com SUM e filtrar por ele
alguém já fez algo parecido?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.