Soma de horas total!!

03/11/2018

0

Boa tarde!!

estou com problema para gerar um relatório no rave report, preciso somar as horas totais de cada funcionário, estou tentando fazer via sql mas ate agora não consegui, preciso mostrar as horas totais trabalhada no mês , e por dia, o meu problema esta no calculo total, para mostrar o tempo que o funcionário trabalhou durante um certo período. Abaixo esta o sql feito ate o momento.

select H.CODIGO_HORAS AS COD
,H.FUN_COD AS CODIGO
,F.FUN_NOME AS NOME
,E.EMP_COD AS CODEMP
,E.EMP_NOME AS EMPRESA
,HORAS_DATA AS DATA
,HORAS_ENTRADA_P1 AS ENTRADAP1
,HORAS_SAIDA_P1 AS SAIDAP1
,HORAS_ENTRADA_P2 AS ENTRADAP2
,HORAS_SAIDA_P2 AS SAIDAP2
,HORAS_TOTAL AS TOTAL
,HORAS_AMENOR AS FALTA
,HORAS_EXTRA AS EXTRA
from TBL_HORAS AS H
full join TBL_FUNCIONARIO AS F CROSS JOIN TBL_EMPRESA AS E
on H.CODIGO_HORAS = F.FUN_COD

where H.FUN_COD = :codFuncionario
AND CAST(HORAS_DATA AS DATE) >= :dataini
AND CAST(HORAS_DATA AS DATE) <= :datafim

GROUP BY DATA,COD,CODEMP,EMPRESA,CODIGO,NOME,ENTRADAP1,SAIDAP1,ENTRADAP2,SAIDAP2,TOTAL,FALTA,EXTRA
Ismael

Ismael

Responder

Post mais votado

05/11/2018

o que você tem na tabela TBL_HORAS? Pode publicar a estrutura da tabela?

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

07/11/2018

Ismael

"CODIGO_HORAS" INTEGER NOT NULL,
"FUN_COD" INTEGER NOT NULL,
"HORAS_DATA" TIMESTAMP,
"HORAS_ENTRADA_P1" TIME,
"HORAS_SAIDA_P1" TIME,
"HORAS_ENTRADA_P2" TIME,
"HORAS_SAIDA_P2" TIME,
"HORAS_TOTAL" TIME,
"HORAS_AMENOR" TIME,
"HORAS_EXTRA" TIME,
PRIMARY KEY ("CODIGO_HORAS")
);
ALTER TABLE "TBL_HORAS" ADD FOREIGN KEY ("FUN_COD") REFERENCES "TBL_FUNCIONARIO" ("FUN_COD");

usei o sum, mas ele soma as horas ate 23:59:59 e nao acresenta mais exemplo
23:00:00 + 04:00:00 = 27:00:00 assim deveria me aparecer
porem ele aparece assim 03:00:00 não sei se me entendeu.
Responder

08/11/2018

Emerson Nascimento

todos os sistemas que eu vi trabalhar com horas trabalham com horas centesimais. é mais fácil de fazer as contas.
você trabalha internamente sempre com centesimal, mas apresenta para o usuário em sexagesimal.



Responder

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

Aceitar