Fórum Duvida com o Sum na aplicação do DEPHI #560104

10/08/2016

0

Gostaria de saber como fazer este comando da forma correta.



begin
begin
begin
with UntDMBanco.qryServico do
BEGIN
Close;
SQL.Clear;
SQL.ADD('SELECT sum(SR_TOTAL_HORAS_DIA)as SR_DATA_ENTRADA FROM SERVICO_REALIZADO');
SQL.Add('WHERE SR_DATA_ENTRADA=edtDataEntradaServico.text LIKE :OSS');
ParamByName('OSS').AsString:= Edit1.Text+ '%';
Open;
END;
end;
end;
end;


Estou fazendo esta aplicação no Dephi para calcular quantas horas as maquinas ficam parada na manutenção por dia. Neste caso ele estará pegando as OS e somando todas que foram aberta no dia.

Alguém poderia me ajudar?
Rodrigo Carlos

Rodrigo Carlos

Responder

Post mais votado

10/08/2016

Qual o tipo do campo SR_DATA_ENTRADA? Está realmente como Data no banco de dados?

Se puder, poste como ficou seu código.

Natanael Ferreira

Natanael Ferreira
Responder

Gostei + 1

Mais Posts

10/08/2016

Rodrigo Carlos

Bom dia!

Sera que consigo fazer esta soma com um DGrid?

Tipo filtrar por data o Dgrid e depois somar só que estiver filtrado?
Responder

Gostei + 0

10/08/2016

Natanael Ferreira

Qual o banco de dados?

Qual a estrutura dos campos da sua tabela?
Responder

Gostei + 0

10/08/2016

Rodrigo Carlos

Firebird
Responder

Gostei + 0

10/08/2016

Rodrigo Carlos

FIREBIRD

SR_ID
SR_OS
SR_EVENTO
SR_HORA_INICIAL
SR_HORA_FINAL
SR_NOME_EXECUTANTE
SR_DESCRICAO
SR_PECAS_ITENS
SR_QUANTIDADE
SR_UNIDADE
SR_VALOR
SR_FORNECEDOR
SR_DATA_ENTRADA
SR_TOTAL_HORAS_DIA
SR_DIA
SR_MES
SR_ANO
Responder

Gostei + 0

10/08/2016

Natanael Ferreira

Teste assim:

 with UntDMBanco.qryServico do
  begin
    Close;
    SQL.Clear;
    SQL.ADD('SELECT sum(SR_TOTAL_HORAS_DIA) as SOMAHORAS FROM SERVICO_REALIZADO');
    SQL.ADD('WHERE SR_DATA_ENTRADA = CURRENT_DATE AND SR_OS = :OSS');
    ParamByName('OSS').AsString := Edit1.Text;
    Open;
  end;
Responder

Gostei + 0

10/08/2016

Rodrigo Carlos

Desta forma foi, mais será que consigo colocar qual a data que quero que seja somado?

tipo se no TEdit colocar o numero 1
existe como a somatória ser somente no dia "1"????

Agradeço a ajuda e a atenção!

Muito Obrigado.
Responder

Gostei + 0

10/08/2016

Natanael Ferreira

Neste caso, te aconselharia a usar o componente DateTimePicker (Aba Win32) para definir o dia da consulta.

E teste o código assim:

with UntDMBanco.qryServico do
  begin
    Close;
    SQL.Clear;
    SQL.ADD('SELECT sum(SR_TOTAL_HORAS_DIA) as SOMAHORAS FROM SERVICO_REALIZADO');
    SQL.ADD('WHERE SR_DATA_ENTRADA = :DATASS AND SR_OS = :OSS');
    ParamByName('OSS').AsString := Edit1.Text;
    ParamByName('DATASS').AsDate := DateTimePicker1.Date;
    Open;
  end;
Responder

Gostei + 0

10/08/2016

Rodrigo Carlos

agora esta dando este erro.

dynamic sql error
expression evaluation not supported
argument for SUM in Dialect3 must b numeric

pode me ajudar?
Responder

Gostei + 0

11/08/2016

Rodrigo Carlos

Bom dia!

Desculpe a demora em responder, consegui fazer. Era da quela forma mesmo.

Muito Obrigado pela atenção.
Responder

Gostei + 0

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

Aceitar