GARANTIR DESCONTO

Fórum Duvida Sobre a Linguagem Sql Função Sum() #202450

21/12/2003

0

Tenho Uma Tabela Escrita Em Paradox Que Contem Um Campo Salario.
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

Marco Salles

Responder

Posts

21/12/2003

Fórum Vini

Marcos,
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;



Responder

Gostei + 0

26/12/2003

Marco Salles

Marcos, coloque o código abaixo no onClick do botão:
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.


Responder

Gostei + 0

26/12/2003

Marco Salles

Sobe


Responder

Gostei + 0

27/12/2003

Marco Salles

Sobe


Responder

Gostei + 0

27/12/2003

Aroldo Zanela

Colega,

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;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar