Fórum Duvida Sobre a Linguagem Sql Função Sum() #202450
21/12/2003
0
Usando Um Componente Query Há Condições De Usar a Função Sum()
Da Linguagem Sql. :?: Se For Possível Vamos Passar Para as Perguntas Abaixo :
Como Poderia Programar Isto , Por Exemplo No Click De Um Botão. :?:
Como Fazer Para Guardar Esta Soma Em Variavel SOMASALARIO Do Tipo Curency. :?:
Qual O Comando De Atribuição e Qual a Sintaxe Para Isto :?:
Marco Salles
Curtir tópico
+ 0Posts
21/12/2003
Fórum Vini
coloque o código abaixo no onClick do botão:
var Soma: Currency; begin Query1.Sql.Text:= ´Select SUM(Salario) as SomaSalario from nome_tabela;´; Query1.Active:= true; Soma:= Query1.FieldByName(´SomaSalario´).asCurrency; end;
Gostei + 0
26/12/2003
Marco Salles
var Soma: Currency; begin Query1.Sql.Text:= ´Select SUM(Liquido) as ValorLiquido from nome_tabela;´; Query1.Active:= true; Soma:= Query1.FieldByName(´ValorLiquido´).asCurrency; end;
PS:Troquei SomaSalario Por ValorLiquido
Salario Por Liquido//
o Camp Liquido é Um Camp Calculado
ValorLiquido Não Esta Definido Na Tabela :´TabVen´ Coloquei Por Que
Foi Sugerido Pelo Vini
Coloquei o Código Sugerido e Ao Executar Obtive Um Erro Em Tempo De Execução Do Projeto DO tipo: ´Qury1: Field ´ValorLiquido´ Not Fond.´
Na Realidade Meu Código Quase Completo Segue Abaixo.
procedure TFormGerarRelatorios.BtRelatorioClick(Sender: TObject); var Soma : currency; begin SelectNext(BtRelatorio,True,True); if Not MensagemErro Then begin if StrToDate(MaskEdit1.Text) < StrToDate(MaskEdit2.Text) Then begin if Modulo.Tbfun.Locate(´Nome_Funcionario´,Combobox1.text,[]) Then Codigo:=Modulo.tbfunCodigo_Funcionario.Value else Codigo:=0; //Para Todos Os Funcionários Query1.disablecontrols; Query1.Close; Query1.SQL.Clear; Query1.Sql.Add(´Select*From ´+ Tabela); Query1.Sql.Add(´Where Data>=:Datainicial´); Query1.ParamByName(´datainicial´).asdate:=strtodate (Maskedit1.text); Query1.Sql.Add(´And Data<=:DataFinal´); Query1.ParamByName(´DataFinal´).asdate:=strtodate (maskedit2.text); if codigo <> 0 Then //Siginifica Mostrar As Vendas So De Um Func. begin Query1.Sql.Add(´And Codigo_Vendedor=:Cod´); Query1.ParamByName(´Cod´).AsInteger:=Codigo; end; Query1.Prepare; Query1.open; Soma:=0; //ABAIXO SEGUE O CÓDIGO SUGERIDO PELO VINI Query1.SQL.Text:=´Select Sum(Liquido) as ValorLiquido From TabVen;´; Query1.Active:=TRue; //ACHO DESNECESSÁRIO.... Soma:=Query1.FieldByName(´ValorLiquido´).AsCurrency; edit1.text:=formatfloat(´R$ : ´+´#,0.00´,Soma); Query1.EnableControls; Bloqueio(False); BtImprimir.SetFocus; end // Fim Do Se DataFinal Menor... else begin Beep; Showmessage(´ERROR : A Data Final Não Pode Ser Menor do Que a Data´+#13+ ´ Inicial . Corrija Por Favor . Obrigado...´); end; end // Fim Do Se Houve ERRO... else MascaraEdit.SetFocus; end;
O Objetivo Da Minha Dúvida e Somar TOdas as Vendas Definido Pelo
Campo ´Liquido´ , Que é Um Camp Calculado , Diga-se De Passagem
Usando a Linguagem SQL Com a Função Sum(). Os Comandos Que O Vini
Gentilmente Me ´Passou´ Esta Dando Erro. Alguem Ou O Própio Vini Pode
Me Socorrer Desta. Muito Obrigado.
Gostei + 0
26/12/2003
Marco Salles
Gostei + 0
27/12/2003
Marco Salles
Gostei + 0
27/12/2003
Aroldo Zanela
Efetue a seguinte correção no seu código:
//ABAIXO SEGUE O CÓDIGO SUGERIDO PELO VINI Query1.Close; // Antes de alterar o conteúdo de Text Query1.SQL.Text:=´Select Sum(Liquido) as ValorLiquido From TabVen´; Query1.Active := True; // ou Query1.Open; Sim! é necessário Soma:=Query1.FieldByName(´ValorLiquido´).AsCurrency;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)