Ir para conteúdo
Fórum Script Brasil
  • 0

Campo calculado


Nahim

Pergunta

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

  • 0

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!

Editado por Erso
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Morpheus --
O meu proble e e passar na clausura WHERE um campo calculado com SUM e filtrar por ele

algué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, unidade

dê uma olhada neste link.

t+

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...