weverton dias Postado 18 de Outubro de 2021 Tópicos Que Criei: 30 Tópicos/Dia: 0.01 Meu Conteúdo: 152 Conteúdo/Dia: 0.03 Reputação: 3 Pontos/Conquistas: 1.193 Conteúdo Resolvido: 0 Dias Ganho: 5 Status: Offline Idade: 36 Dispositivo: Windows Denunciar Compartilhar Postado 18 de Outubro de 2021 (editado) Bom dia Pessoal! Estou com problemas na consulta abaixo, preciso retornar as horas extras a 70% em uma coluna, e 100% em outra coluna, através da tabela AMOVFUNDIA… e incorporar a consulta abaixo… alguém pode ajudar… SELECT F.CHAPA, P.NOME, S.DESCRICAO, LEFT(FORMAT(Sum(H.ATRASO) / 60, '00') + ':' + FORMAT((Sum(H.ATRASO) / 60.0 - Sum(H.ATRASO) / 60) * 60, '00'), 5) AS ATRASO, LEFT(FORMAT(Sum(H.FALTA) / 60, '00') + ':' + FORMAT((Sum(H.FALTA) / 60.0 - Sum(H.FALTA) / 60) * 60, '00'), 5) AS FALTA, LEFT(FORMAT(Sum(H.COMPENSADO) / 60, '00') + ':' + FORMAT((Sum(H.COMPENSADO) / 60.0 - Sum(H.COMPENSADO) / 60) * 60, '00'), 5) AS COMPENSADO, LEFT(FORMAT(Sum(H.EXTRAEXECUTADO) / 60, '00') + ':' + FORMAT((Sum(H.EXTRAEXECUTADO) / 60.0 - Sum(H.EXTRAEXECUTADO) / 60) * 60, '00'), 6) AS TOTAL_EXTRA_100_70, /*DEVERÁ RETORNA O EVENTO DE HORAS EXTRAS A 70% E SOMA-LOS*/ (SELECT LEFT(FORMAT(Sum(M.NUMHORAS) / 60, '00') + ':' + FORMAT((Sum(M.NUMHORAS) / 60.0 - Sum(M.NUMHORAS) / 60) * 60, '00'), 5) AS EXTRA70 FROM AMOVFUNDIA M WHERE CODEVE = 0122 AND M.DATA >= H.DATA AND M.DATA <= H.DATA), /*DEVERÁ RETORNA O EVENTO DE HORAS EXTRAS A 100% E SOMA-LOS*/ /*(SELECT M.NUMHORAS AS EXTRA100 FROM AMOVFUNDIA M WHERE CODEVE = 0122 AND M.DATA >= H.DATA AND M.DATA <= H.DATA),*/ LEFT(FORMAT(Sum(H.BASE) / 60, '00') + ':' + FORMAT((Sum(H.BASE) / 60.0 - Sum(H.BASE) / 60) * 60, '00'), 5) AS HORASTRAB_SEM_EXTRAS, LEFT(FORMAT(Sum(H.BASE + H.EXTRAEXECUTADO) / 60, '00') + ':' + FORMAT((Sum(H.BASE + H.EXTRAEXECUTADO) / 60.0 - Sum(H.BASE + H.EXTRAEXECUTADO) / 60) * 60, '00'), 6) AS HORASTRABALHADAS, LEFT(FORMAT(Sum(H.ADICIONAL) / 60, '00') + ':' + FORMAT((Sum(H.ADICIONAL) / 60.0 - Sum(H.ADICIONAL) / 60) * 60, '00'), 5) AS ADICIONAL, LEFT(FORMAT(Sum(H.ABONO) / 60, '00') + ':' + FORMAT((Sum(H.ABONO) / 60.0 - Sum(H.ABONO) / 60) * 60, '00'), 5) AS ABONO, F.CHAPA AS CHAPA_BASE FROM PPESSOA AS P INNER JOIN PFUNC AS F ON P.CODIGO = F.CODPESSOA INNER JOIN PSECAO AS S ON F.CODCOLIGADA = S.CODCOLIGADA AND F.CODSECAO = S.CODIGO INNER JOIN AAFHTFUN AS H ON F.CHAPA = H.CHAPA WHERE F.CODCOLIGADA = :COLIGADA AND ( H.DATA >= :DATA_INICIAL ) AND ( H.DATA <= :DATA_FINAL ) GROUP BY F.CHAPA, P.NOME, S.DESCRICAO, H.DATA Editado 18 de Outubro de 2021 por weverton dias Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 18 de Outubro de 2021 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Android Denunciar Compartilhar Postado 18 de Outubro de 2021 @weverton dias, boa tarde! Segue, possível solução. TOTVS-RM/UTL_GET_HORA.sql at master · luisgustavogomes/TOTVS-RM (github.com) /* USE CORPORERM GO DECLARE @CODCOLIGADA INT = 1 ; DECLARE @DATAINCIAL DATETIME = '2021-08-16' DECLARE @DATAFINAL DATETIME = '2021-09-15' ;WITH TAB_DADOS_FUNC AS ( SELECT F.CODCOLIGADA ,F.CHAPA ,P.NOME ,S.DESCRICAO ,H.[DATA] ,SUM(H.ATRASO) AS 'ATRASO' ,SUM(H.FALTA) AS 'FALTA' ,SUM(H.COMPENSADO) AS 'COMPENSADO' ,SUM(H.EXTRAEXECUTADO) AS 'TOTAL_EXTRA' ,SUM(H.BASE) AS 'HORASTRAB_SEM_EXTRAS' ,SUM(H.BASE + H.EXTRAEXECUTADO) AS 'HORASTRABALHADAS' ,SUM(H.ADICIONAL) AS 'ADICIONAL' ,SUM(H.ABONO) AS 'ABONO' FROM DBO.PPESSOA AS P INNER JOIN DBO.PFUNC AS F ON ( P.CODIGO = F.CODPESSOA ) INNER JOIN DBO.PSECAO AS S ON (F.CODCOLIGADA = S.CODCOLIGADA AND F.CODSECAO = S.CODIGO) INNER JOIN DBO.AAFHTFUN AS H ON (F.CODCOLIGADA = H.CODCOLIGADA AND F.CHAPA = H.CHAPA) WHERE F.CODCOLIGADA = @CODCOLIGADA AND ( F.CODSITUACAO = 'D' OR F.DATADEMISSAO >= @DATAINCIAL) AND ( H.[DATA] >= @DATAINCIAL ) AND ( H.[DATA] <= @DATAFINAL ) GROUP BY F.CODCOLIGADA ,F.CHAPA ,P.NOME ,S.DESCRICAO ,H.[DATA] ) , TAB_DADOS AS ( SELECT TD.CODCOLIGADA ,TD.CHAPA ,TD.NOME ,TD.DESCRICAO ,TD.[DATA] ,TD.ATRASO ,TD.FALTA ,TD.COMPENSADO ,TD.TOTAL_EXTRA ,TD.HORASTRAB_SEM_EXTRAS ,TD.HORASTRABALHADAS ,TD.ADICIONAL ,TD.ABONO ,ISNULL(E1.VALOR,0) AS 'E1VALOR' ,ISNULL(E2.VALOR,0) AS 'E2VALOR' FROM TAB_DADOS_FUNC TD OUTER APPLY ( SELECT M.VALOR FROM DBO.AMOVFUNDIA M WHERE M.CODCOLIGADA = TD.CODCOLIGADA AND M.CHAPA = TD.CHAPA AND M.[DATA] = TD.[DATA] AND M.CODEVE = '0051' /*TESTE*/ ) E1 OUTER APPLY ( SELECT M.VALOR FROM DBO.AMOVFUNDIA M WHERE M.CODCOLIGADA = TD.CODCOLIGADA AND M.CHAPA = TD.CHAPA AND M.[DATA] = TD.[DATA] AND M.CODEVE = '0040'/*TESTE*/ ) E2 /*CRIAÇÃO DOS EVENTOS*/ ) SELECT TD.CODCOLIGADA ,TD.CHAPA ,TD.NOME ,TD.DESCRICAO ,[dbo].[UTL_GET_HORA](SUM(TD.ATRASO)) AS 'ATRASO' ,[dbo].[UTL_GET_HORA](SUM(TD.FALTA)) AS 'FALTA' ,[dbo].[UTL_GET_HORA](SUM(TD.COMPENSADO)) AS 'COMPENSADO' ,[dbo].[UTL_GET_HORA](SUM(TD.TOTAL_EXTRA)) AS 'TOTAL_EXTRA' ,[dbo].[UTL_GET_HORA](SUM(TD.HORASTRAB_SEM_EXTRAS)) AS 'HORASTRAB_SEM_EXTRAS' ,[dbo].[UTL_GET_HORA](SUM(TD.HORASTRABALHADAS)) AS 'HORASTRABALHADAS' ,[dbo].[UTL_GET_HORA](SUM(TD.ADICIONAL)) AS 'ADICIONAL' ,[dbo].[UTL_GET_HORA](SUM(TD.ABONO)) AS 'ABONO' ,[dbo].[UTL_GET_HORA](SUM(TD.E1VALOR)) AS 'E2VALOR' ,[dbo].[UTL_GET_HORA](SUM(TD.E2VALOR)) AS 'E2VALOR' FROM TAB_DADOS TD GROUP BY TD.CODCOLIGADA ,TD.CHAPA ,TD.NOME ,TD.DESCRICAO /* abraços. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 19 de Outubro de 2021 Tópicos Que Criei: 899 Tópicos/Dia: 0.14 Meu Conteúdo: 8.842 Conteúdo/Dia: 1.34 Reputação: 310 Pontos/Conquistas: 106.579 Conteúdo Resolvido: 0 Dias Ganho: 195 Status: Offline Idade: 52 Dispositivo: Windows Denunciar Compartilhar Postado 19 de Outubro de 2021 Muito bom Luis!!!! @weverton dias para o uso dessa sentença que o Luis postou, observe que terá que gravar antes no seu banco de dados, a função que ele deixou no link logo no início ok ? Senão, a consulta não irá funcionar. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
luisgustavogomes Postado 19 de Outubro de 2021 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 485 Conteúdo/Dia: 0.21 Reputação: 136 Pontos/Conquistas: 3.231 Conteúdo Resolvido: 0 Dias Ganho: 64 Status: Offline Idade: 35 Dispositivo: Android Denunciar Compartilhar Postado 19 de Outubro de 2021 Pessoal, Podem também envolver a consulta existente em uma CTE e juntar esse query... abraços! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.