ajuda com SUM no selet
ola pessoal mais uma simples duvida,
na montagem do selet ja vi usado o comando SUM para somar uma coluna do banco de dados, a montagem do comando eu entendi, a minha duvida e quanto ao uso da variavel na qual e guardada a soma ex SUM(Campo) as Total, a variavel total tem que ser craiada no cabecario da procedure, simplesmente pego a quantidade armazenada na variavel Total da segunte forma
Label1.caption := IntToStr(Total)
pelo que tenho relatado a minha duvida se refere ao uso da variavel que guardara o total, como crio ou uso tal variavel
ajudem me por favor, hoje quando tenho que somar uma coluna uso while e dou um loop em todo o arquivo somando linha por linha
funciona , mas se tenho uma outra opçaõ mais facil porque não usar
na montagem do selet ja vi usado o comando SUM para somar uma coluna do banco de dados, a montagem do comando eu entendi, a minha duvida e quanto ao uso da variavel na qual e guardada a soma ex SUM(Campo) as Total, a variavel total tem que ser craiada no cabecario da procedure, simplesmente pego a quantidade armazenada na variavel Total da segunte forma
Label1.caption := IntToStr(Total)
pelo que tenho relatado a minha duvida se refere ao uso da variavel que guardara o total, como crio ou uso tal variavel
ajudem me por favor, hoje quando tenho que somar uma coluna uso while e dou um loop em todo o arquivo somando linha por linha
funciona , mas se tenho uma outra opçaõ mais facil porque não usar
Edson Melo
Curtidas 0
Respostas
Joel Rodrigues
21/05/2012
Boa tarde.
Bem, pra começar, o Total que você citou não é exatamente uma variável, trata-se apenas de um alias (apelido) para a coluna formada pelo sum.
Se você deseja retornar a soma de uma coluna para um dataset no Delphi, utilizando Stored Procedures, você precisa de uma variável de saída (output) e reconhecê-la no Delphi.
Que banco de dados você usa? Que engine de conexão?
Seque um exemplo de um stored procedure com variável de saída no MS SQL Server:
No Delphi, ao ligar uma Query a este procedure, você terá acesso à então variável TOTAL como parâmetro de saída.
Esta é uma visão geral, espero que, pelo menos, dê pra clarear as ideias.
Boa sorte em seus projetos.
Bem, pra começar, o Total que você citou não é exatamente uma variável, trata-se apenas de um alias (apelido) para a coluna formada pelo sum.
Se você deseja retornar a soma de uma coluna para um dataset no Delphi, utilizando Stored Procedures, você precisa de uma variável de saída (output) e reconhecê-la no Delphi.
Que banco de dados você usa? Que engine de conexão?
Seque um exemplo de um stored procedure com variável de saída no MS SQL Server:
CREATE PROCEDURE usp_SomarColuna @TOTAL DECIMAL(10,2) AS BEGIN SELECT @TOTAL = SUM(COLUNA) FROM TABELA END
No Delphi, ao ligar uma Query a este procedure, você terá acesso à então variável TOTAL como parâmetro de saída.
Esta é uma visão geral, espero que, pelo menos, dê pra clarear as ideias.
Boa sorte em seus projetos.
GOSTEI 0
Edson Melo
21/05/2012
ola joel, me esqueci de dizer que uso o firebird 2.5 com clientdataset no delphi 2010
mas se eu precisar de usar o valor total no form de pesquisa, não poderei pegar o que esta guardado em total e simplesmente colocar no local. e isso que me ta deixando maluco, se for para fazer do jeito que voce esplicou acho melhor continuar do meu jeito, pois e mais simples e facil, não que eu não tenha interesse em aprender , não entenda isso, quero aprender a fazer , mas do meu jeito ainda assim continua mais viavel e facil de usar.
espero mais explicações que me ajude a entender
ate breve
mas se eu precisar de usar o valor total no form de pesquisa, não poderei pegar o que esta guardado em total e simplesmente colocar no local. e isso que me ta deixando maluco, se for para fazer do jeito que voce esplicou acho melhor continuar do meu jeito, pois e mais simples e facil, não que eu não tenha interesse em aprender , não entenda isso, quero aprender a fazer , mas do meu jeito ainda assim continua mais viavel e facil de usar.
espero mais explicações que me ajude a entender
ate breve
GOSTEI 0
Joel Rodrigues
21/05/2012
Vamos lá, depende de como é feita sua consulta. Se no seu select você traz apenas o SUM, perfeito, pode usar esse Total como qualquer outro campo. Por exemplo, eu quero o total da coluna VALOR da tabela VENDAS, apenas esse total e nada mais. Eu posso usar a seguinte isntrução:
Colocando isso num dataset, você pode usar o campo TOTAL normalmente (dataset.FieldByName(´TOTAL´).AsFloat).
Beleza? Persistindo as dúvidas ou surgindo novas, pode entrar em contato.
SELECT SUM(VALOR) AS TOTAL FROM VENDAS
Colocando isso num dataset, você pode usar o campo TOTAL normalmente (dataset.FieldByName(´TOTAL´).AsFloat).
Beleza? Persistindo as dúvidas ou surgindo novas, pode entrar em contato.
GOSTEI 0
William
21/05/2012
Só complementando a excelente explicação do colega Joel, vc está usando um componente do tipo TQuery dedicado só para soma ou está instanciando o TQuery em tempo de execução?
Caso esteja trabalhando com o componente dedicado no form ou no DataModule, a própria IDE do Delphi fornece facilidades para se trabalhar com esse campo total, com um duplo clique em cima do componente TQuery vc pode usar o Fields Editor para incluir esse campo total.
Caso esteja instanciando em tempo de execução (O meu preferido), ai vc pode capturar o valor do campo usando Query.Field[0].value.
Os 2 modos produzem o mesmo resultado, é só escolher.
Caso esteja trabalhando com o componente dedicado no form ou no DataModule, a própria IDE do Delphi fornece facilidades para se trabalhar com esse campo total, com um duplo clique em cima do componente TQuery vc pode usar o Fields Editor para incluir esse campo total.
Caso esteja instanciando em tempo de execução (O meu preferido), ai vc pode capturar o valor do campo usando Query.Field[0].value.
Os 2 modos produzem o mesmo resultado, é só escolher.
GOSTEI 0