Edivan Postado 23 de Fevereiro de 2018 Tópicos Que Criei: 22 Tópicos/Dia: 0.00 Meu Conteúdo: 76 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 602 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 52 Denunciar Compartilhar Postado 23 de Fevereiro de 2018 Pessoal, preciso de um relatório (planilha) que gere o histórico de alterações (por data), de salário e função e quem fez a alteração. Tenho uma sentença que gera somente o histórico do salário atual e anterior. Precisaria incluir também a função (nome) anterior e a atual. Alguém poderia dar um help na sentença abaixo: SELECT IDLOG, DTHORA, USUARIO, VALORANTIGO AS "VALOR ANTINGO", VALOR AS "VALOR ATUAL", TIPOSQL AS "TIPO ALTERACAO", RIGHT(CHAVE,6), NOME,PROCESSO FROM ZLOG,PFUNC WHERE COLUNA = 'SALARIO' AND RIGHT(CHAVE,6)=CHAPA AND DATEPART(YEAR,DTHORA)=:PLN_$B$3_N AND DATEPART(MONTH,DTHORA)=:PLN_$B$4_N ORDER BY CHAVE, DTHORA, IDLOG Segue exemplo ALTERAÇÕES SALARIAIS Ano 2018 Mês 1 IDLOG DATA USUARIO SAL.ANTIGO SAL.NOVO T MATRÍCULA NOME FUNÇÃO ANTERIOR FUNÇÃO ATUAL Agradeço. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
rteles Postado 23 de Fevereiro de 2018 Tópicos Que Criei: 7 Tópicos/Dia: 0.00 Meu Conteúdo: 26 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 202 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 34 Denunciar Compartilhar Postado 23 de Fevereiro de 2018 Olá Edivan! Bom dia! Se quer analisar o campo mesmo alterado você está certo vendo pela ZLOG, caso não necessite saber o campo exato e sim se teve uma mudança naquele processo poderá consultar nas tabelas de históricos: Salário: PFHSTSAL Função: PFHSTFCO No seu script acho que se incluir a tabela PFUNCAO e na condição unir os campos da tabela PFUNC e PFUNCAO acho que funcionará. SELECT IDLOG, DTHORA, USUARIO, VALORANTIGO AS "VALOR ANTINGO", VALOR AS "VALOR ATUAL", TIPOSQL AS "TIPO ALTERACAO", RIGHT(CHAVE,6), NOME,PROCESSO FROM ZLOG,PFUNC, PFUNCAO WHERE COLUNA = 'SALARIO' AND RIGHT(CHAVE,6)=CHAPA AND DATEPART(YEAR,DTHORA)=:PLN_$B$3_N AND DATEPART(MONTH,DTHORA)=:PLN_$B$4_N AND PFUNC.CODFUNCAO = PFUNCAO.CODIGO ORDER BY CHAVE, DTHORA, IDLOG E também vi que compara a chapa com parte do campo CHAVE da tabela ZLOG, talvez não seja tão eficiente fazer dessa maneira. Veja aí e qq coisa retorna! Abraços. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
rteles Postado 23 de Fevereiro de 2018 Tópicos Que Criei: 7 Tópicos/Dia: 0.00 Meu Conteúdo: 26 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 202 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 34 Denunciar Compartilhar Postado 23 de Fevereiro de 2018 Converti aqui pra minha base ORACLE e acho que funcionou do jeito que precisa. SELECT IDLOG, DTHORA, USUARIO, VALORANTIGO AS "VALOR ANTINGO", VALOR AS "VALOR ATUAL", TIPOSQL AS "TIPO ALTERACAO", SUBSTR(CHAVE, GREATEST(-LENGTH(CHAVE),-6)), PFUNC.NOME,PROCESSO, PFUNCAO.NOME FROM ZLOG,PFUNC, PFUNCAO WHERE COLUNA = 'SALARIO' AND SUBSTR(CHAVE, GREATEST(-LENGTH(CHAVE),-6))=CHAPA AND TO_CHAR(DTHORA, 'YYYY')='2018' AND TO_CHAR(DTHORA, 'MM')='02' AND PFUNC.CODFUNCAO = PFUNCAO.CODIGO ORDER BY CHAVE, DTHORA, IDLOG Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
LUIZ ALBERTO FONSECA Postado 22 de Agosto de 2019 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 10 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 78 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 60 Dispositivo: Windows Denunciar Compartilhar Postado 22 de Agosto de 2019 Deu erro na variável LENGTH Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 7 de Outubro de 2019 Tópicos Que Criei: 885 Tópicos/Dia: 0.13 Meu Conteúdo: 8.802 Conteúdo/Dia: 1.34 Reputação: 291 Pontos/Conquistas: 106.268 Conteúdo Resolvido: 0 Dias Ganho: 185 Status: Offline Idade: 51 Dispositivo: Windows Denunciar Compartilhar Postado 7 de Outubro de 2019 Em 22/08/2019 at 20:23, LUIZ ALBERTO FONSECA disse: Deu erro na variável LENGTH Sua base é Oracle Luiz? Esse comando é específico para bases em Oracle. Para SQL Server é o LEN(campo) ou no caso desta linha AND RIGHT(CHAVE,6)=CHAPA 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.