Paulo Barbosa Postado 9 de Abril de 2009 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 3 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 25 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Denunciar Compartilhar Postado 9 de Abril de 2009 Olá a todos, sou novo com geração de relatório no RM e gostaria de uma ajuda de vocês para a sentença abaixo: SELECT PFUNC.CHAPA AS MATRICULA, PPESSOA.NOME AS NOME, PFUNCAO.NOME AS FUNCAO, PCONTAS.GRPCONTA AS GRUPOCONTA, PFUNC.INTEGRCONTABIL AS INTGER, PCONTAS.CONTASALDUS AS CONTACONTABIL, PSECAO.DESCRICAO AS DEPARTAMENTO, PFFINANC.CODEVENTO AS CODIGO, PEVENTO.DESCRICAO AS DESCEVENTO, (CASE WHEN PEVENTO.PROVDESCBASE ='D' THEN (PFFINANC.VALOR * -1) WHEN PEVENTO.PROVDESCBASE = 'P' THEN PFFINANC.VALOR END) AS VALOR, DTPAGTO AS PAGAMENTO, PFUNC.CODSITUACAO FROM PFUNC(NOLOCK), PPESSOA(NOLOCK), PSECAO(NOLOCK), PFUNCAO(NOLOCK), PEVENTO(NOLOCK), PFFINANC(NOLOCK), PCONTAS(NOLOCK), PCODINTCONTFUNC(NOLOCK) WHERE PFFINANC.MESCOMP = '3' AND PFFINANC.ANOCOMP = '2009' AND PFFINANC.VALOR <> 0 AND (PFUNC.CODPESSOA = PPESSOA.CODIGO AND PFUNCAO.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNCAO.CODIGO = PFUNC.CODFUNCAO AND PFUNC.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNC.CODSECAO = PSECAO.CODIGO AND PEVENTO.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFFINANC.CODCOLIGADA = PEVENTO.CODCOLIGADA AND PFFINANC.CODEVENTO = PEVENTO.CODIGO AND PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA AND PFUNC.CODCOLIGADA = PCODINTCONTFUNC.CODCOLIGADA AND PFUNC.INTEGRCONTABIL = PCODINTCONTFUNC.CODCLIENTE AND PCONTAS.CODCOLIGADA = PCODINTCONTFUNC.CODCOLIGADA AND PCONTAS.INTEGRCFUNC = PCODINTCONTFUNC.CODCLIENTE AND PEVENTO.PROVDESCBASE <> 'B') O objetivo deste relatório seria obter uma relação dos funcionários onde a soma dos valores dos eventos seria igual ao valor liquido gerado pela folha de pagamento ou o "envelope" demonstrado no RM Labore e a conta contábil as quais foram alocados , porém quando "rodo" ele gera muitas informações repetidas. Acredito ser um erro de vinculo de tabelas, pois cada evento (PFFINANC.CODEVENTO) tem um grupo vinculado (PCONTAS.GRPCONTA) e neste grupo que há a conta contábil destacada e como tenho mais de 1000 eventos e vários vinculado ao mesmo grupo acredito ser a causa das repetições. ObS: já tentei suporte e não obtive resultados.... Desde já agradeço a atenção. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Mauricio J. T. Postado 9 de Abril de 2009 Tópicos Que Criei: 134 Tópicos/Dia: 0.02 Meu Conteúdo: 1.225 Conteúdo/Dia: 0.19 Reputação: 2 Pontos/Conquistas: 7.400 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Dispositivo: Windows Denunciar Compartilhar Postado 9 de Abril de 2009 Como todas essas tabelas sao relaciondadas entre si, nao vejo motivo para usar sentenças SQL. Use o gerador usando varias LDS, Totalizadores, etc. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Paulo Barbosa Postado 9 de Abril de 2009 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 3 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 25 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Autor Denunciar Compartilhar Postado 9 de Abril de 2009 olá...obrigado pela resposta... Meu problema é que uma das exigências do usuário seria que o relatório deveria ser em planilha ou cubo para permitir exportar para excel... Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Dayana Fernandes Postado 9 de Abril de 2009 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 21 Conteúdo/Dia: 0.00 Reputação: 1 Pontos/Conquistas: 145 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 40 Denunciar Compartilhar Postado 9 de Abril de 2009 Tenta este select ai! SELECT PFUNC.CHAPA AS MATRICULA, PFUNC.NOME AS NOME, PFUNCAO.NOME AS FUNCAO, PCONTAS.GRPCONTA AS GRUPOCONTA, PFUNC.INTEGRCONTABIL AS INTGER, PCONTAS.CONTASALDUS AS CONTACONTABIL, PSECAO.DESCRICAO AS DEPARTAMENTO, PFFINANC.CODEVENTO AS CODIGO, PEVENTO.DESCRICAO AS DESCEVENTO, ( CASE WHEN PEVENTO.PROVDESCBASE ='D' THEN (PFFINANC.VALOR * -1) WHEN PEVENTO.PROVDESCBASE = 'P' THEN PFFINANC.VALOR END ) AS VALOR, DTPAGTO AS PAGAMENTO, PFUNC.CODSITUACAO FROM PFUNC (NOLOCK) JOIN PSECAO (NOLOCK) ON ( PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA AND PFUNC.CODSECAO = PSECAO.CODIGO ) JOIN PFUNCAO (NOLOCK) ON ( PFUNCAO.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNCAO.CODIGO = PFUNC.CODFUNCAO ) JOIN PFFINANC (NOLOCK) ON ( PFFINANC.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA ) JOIN PEVENTO (NOLOCK) ON ( PEVENTO.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PEVENTO.CODIGO = PFFINANC.CODEVENTO ) LEFT JOIN PCODINTCONTFUNC (NOLOCK) ON ( PFUNC.CODCOLIGADA = PCODINTCONTFUNC.CODCOLIGADA AND PFUNC.INTEGRCONTABIL = PCODINTCONTFUNC.CODCLIENTE ) LEFT JOIN PCONTAS (NOLOCK) ON ( PCONTAS.CODCOLIGADA = PCODINTCONTFUNC.CODCOLIGADA AND PCONTAS.INTEGRCFUNC = PCODINTCONTFUNC.CODCLIENTE ) WHERE PFFINANC.MESCOMP = '3' AND PFFINANC.ANOCOMP = '2009' AND PFFINANC.VALOR <> 0 AND PEVENTO.PROVDESCBASE <> 'B' Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Paulo Barbosa Postado 9 de Abril de 2009 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 3 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 25 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Autor Denunciar Compartilhar Postado 9 de Abril de 2009 Obrigado pela resposta Dayana mas continou repetindo ... abaixo segue lista do resultado apresentado para um evento... peguei apenas algumas linhas pois apresenta 456 resultados e deveriam constar apenas 8. CHAPA NOME GRUPO INT.GER CONTACONTABIL DEPTO. EVENTO 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 1001 7.04 1.10.15.09.002 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 1002 7.04 2.10.13.01.003 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 1003 7.04 1.10.15.09.004 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 1004 7.04 1.10.15.09.005 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 1005 7.04 1.10.15.11.007 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2001 7.04 2.10.13.01.001 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2002 7.04 2.10.13.01.002 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2004 7.04 1.10.15.09.012 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2005 7.04 2.10.13.01.005 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2006 7.04 2.10.13.01.006 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2007 7.04 2.10.13.02.001 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2008 7.04 2.10.13.02.002 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2009 7.04 2.10.13.02.003 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2010 7.04 2.10.13.02.004 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2011 7.04 2.10.21.07.001 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2012 7.04 2.10.13.03.001 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2013 7.04 2.10.13.03.002 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2014 7.04 2.10.15.01.001 TI (012222) 0001 000293 PAULO ROBERTO DE OLIVEIRA BARBOSA ASSISTENTE DE TI 2017 7.04 2.10.15.02.001 TI (012222) 0001 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Saritur TI Postado 9 de Abril de 2009 Tópicos Que Criei: 1 Tópicos/Dia: 0.00 Meu Conteúdo: 14 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 80 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 46 Denunciar Compartilhar Postado 9 de Abril de 2009 Boa tarde, também não tenho muita experiência em sentenças sql, mas quando este tipo de erro acontece comigo é porque está faltando mais alguma comparação no WHERE, da uma olhada nas tabelas que está utilizando e tenta achar mais e se necessário acrescente outra tabela só para faze a comparação no WHERE sem precisar lançar no select. E outra coisa, se vc rodar a sentença no query analizer o resultado da repetição é o mesmo? Att Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Dayana Fernandes Postado 9 de Abril de 2009 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 21 Conteúdo/Dia: 0.00 Reputação: 1 Pontos/Conquistas: 145 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 40 Denunciar Compartilhar Postado 9 de Abril de 2009 Olha só... sua consulta retorna todos os eventos de um determinado mês... ex: salario, inss, ... talvez se vc retirar o codigo e descrição do evento e usar as funções sum no select e group by... talvez dê certo! Sorry! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Wilson Junior Postado 22 de Abril de 2009 Tópicos Que Criei: 3 Tópicos/Dia: 0.00 Meu Conteúdo: 41 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 235 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 44 Denunciar Compartilhar Postado 22 de Abril de 2009 Concordo com a Dayana, Ta duplicando por causa dos eventos, se usar um distinct e tirar o codigo, a descrição, o valor e a data não terá mais duplicações. Da uma olhada se é isso. SELECT DISTINCT PFUNC.CHAPA AS MATRICULA, PFUNC.NOME AS NOME, PFUNCAO.NOME AS FUNCAO, PCONTAS.GRPCONTA AS GRUPOCONTA, PFUNC.INTEGRCONTABIL AS INTGER, PCONTAS.CONTASALDUS AS CONTACONTABIL, PSECAO.DESCRICAO AS DEPARTAMENTO, --PFFINANC.CODEVENTO AS CODIGO, --PEVENTO.DESCRICAO AS DESCEVENTO, --( --CASE --WHEN PEVENTO.PROVDESCBASE ='D' --THEN (PFFINANC.VALOR * -1) --WHEN PEVENTO.PROVDESCBASE = 'P' --THEN PFFINANC.VALOR --END --) AS VALOR, --DTPAGTO AS PAGAMENTO, PFUNC.CODSITUACAO FROM PFUNC (NOLOCK) JOIN PSECAO (NOLOCK) ON ( PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA AND PFUNC.CODSECAO = PSECAO.CODIGO ) JOIN PFUNCAO (NOLOCK) ON ( PFUNCAO.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNCAO.CODIGO = PFUNC.CODFUNCAO ) JOIN PFFINANC (NOLOCK) ON ( PFFINANC.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNC.CHAPA = PFFINANC.CHAPA ) JOIN PEVENTO (NOLOCK) ON ( PEVENTO.CODCOLIGADA = PFFINANC.CODCOLIGADA AND PEVENTO.CODIGO = PFFINANC.CODEVENTO ) LEFT JOIN PCODINTCONTFUNC (NOLOCK) ON ( PFUNC.CODCOLIGADA = PCODINTCONTFUNC.CODCOLIGADA AND PFUNC.INTEGRCONTABIL = PCODINTCONTFUNC.CODCLIENTE ) LEFT JOIN PCONTAS (NOLOCK) ON ( PCONTAS.CODCOLIGADA = PCODINTCONTFUNC.CODCOLIGADA AND PCONTAS.INTEGRCFUNC = PCODINTCONTFUNC.CODCLIENTE ) WHERE PFFINANC.MESCOMP = '3' AND PFFINANC.ANOCOMP = '2009' AND PFFINANC.VALOR <> 0 AND PEVENTO.PROVDESCBASE <> 'B' 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.