Duvida com o Sum na aplicação do DEPHI

Delphi

Firebird

10/08/2016

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

Curtidas 0

Melhor post

Natanael Ferreira

Natanael Ferreira

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.
GOSTEI 1

Mais Respostas

Rodrigo Carlos

Rodrigo Carlos

10/08/2016

Bom dia!

Sera que consigo fazer esta soma com um DGrid?

Tipo filtrar por data o Dgrid e depois somar só que estiver filtrado?
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

10/08/2016

Qual o banco de dados?

Qual a estrutura dos campos da sua tabela?
GOSTEI 0
Rodrigo Carlos

Rodrigo Carlos

10/08/2016

Firebird
GOSTEI 0
Rodrigo Carlos

Rodrigo Carlos

10/08/2016

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
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

10/08/2016

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;
GOSTEI 0
Rodrigo Carlos

Rodrigo Carlos

10/08/2016

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.
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

10/08/2016

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;
GOSTEI 0
Rodrigo Carlos

Rodrigo Carlos

10/08/2016

agora esta dando este erro.

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

pode me ajudar?
GOSTEI 0
Rodrigo Carlos

Rodrigo Carlos

10/08/2016

Bom dia!

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

Muito Obrigado pela atenção.
GOSTEI 0
POSTAR