Alexandre_Magno Postado 3 de Dezembro de 2008 Tópicos Que Criei: 14 Tópicos/Dia: 0.00 Meu Conteúdo: 55 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 415 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 61 Denunciar Compartilhar Postado 3 de Dezembro de 2008 Bom dia amigos. Criei planilha no RM Labore com a utilização da sentença abaixo, e o problema é que a soma do valor do encargo está acunulando com a soma dos eventos da primeira linha de CASE(???) após a "s.descricao". Se alguem puder me indicar o erro na sentença eu agradeço. Abraços. ---------------------------------- Select s.codigo, s.descricao, sum(CASE WHEN F.CODEVENTO IN ('0001','0002','0037','0046','0139', '0195','0141') THEN f.valor ELSE 0 END) /*salarioMes*/, sum(CASE WHEN E.CODENCARGO IN ('0057') THEN e.valor ELSE 0 END) /*REM. BRUTA*/, sum(CASE WHEN F.CODEVENTO IN ('0154','0162') THEN f.valor ELSE 0 END) /*AX. CRECHE*/, sum(CASE WHEN F.CODEVENTO IN ('0228') THEN f.valor ELSE 0 END) /*HE50%*/, sum(CASE WHEN F.CODEVENTO IN ('0387','0388') THEN f.valor ELSE 0 END) /*HE60%*/, sum(CASE WHEN F.CODEVENTO IN ('0242') THEN f.valor ELSE 0 END) /*HE65%*/, sum(CASE WHEN F.CODEVENTO IN ('0124','0377') THEN f.valor ELSE 0 END) /*HE75%*/, sum(CASE WHEN F.CODEVENTO IN ('0010') THEN f.valor ELSE 0 END) /*HE95%*/, sum(CASE WHEN F.CODEVENTO IN ('0111') THEN f.valor ELSE 0 END) /*HE100%*/, sum(CASE WHEN F.CODEVENTO IN ('0113','0291','0294','0331','0332', '0359','378','0391','0214') THEN f.valor ELSE 0 END) /*DSR*/, sum(CASE WHEN F.CODEVENTO IN ('0116','0329','0439','0360','0357','0358','0136') THEN f.valor ELSE 0 END) /*Ad.Not*/, sum(CASE WHEN F.CODEVENTO IN ('0149','0186','0240','0212','0076') THEN f.valor ELSE 0 END) /*PREMIO*/, sum(CASE WHEN F.CODEVENTO IN ('0157') THEN f.valor ELSE 0 END) /*PLR*/, sum(CASE WHEN F.CODEVENTO IN ('0024','0025','0064','0048','0071', '0258','0277','0281','0121','035','0063','0266','0340','0341','0343','0345') THEN f.valor ELSE 0 END) /*INDENIZATÓRIOS*/ from pfunc p left join psecao s on p.codcoligada=s.codcoligada and p.codsecao=s.codigo left join pfencargo e on p.codcoligada=e.codcoligada and p.chapa=e.chapa and e.mescomp= :PLN_$S$7_N and e.anocomp= :PLN_$T$7_N and e.codencargo in('0057') left join pffinanc f on p.codcoligada=f.codcoligada and p.chapa=f.chapa and f.mescomp= :PLN_$S$7_N and f.anocomp= :PLN_$T$7_N and f.codevento in ('0001','0002','0037','0046','0139','0195','0141','0154','0162','0228', '0387','0388','0242','0124','0377','0113','0291','0294','0331','0332','0359','378','0391','0214') Where p.codcoligada= :PLN_$E$2_N and (p.codsituacao <>'D' or p.datademissao>= :PLN_$E$1_D ) and (p.tipoadmissao<>'T' or p.dttransferencia<= :PLN_$E$1_D ) and (f.valor>=0 or e.valor>=0) group by s.codigo, s.descricao Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
renato Postado 3 de Dezembro de 2008 Tópicos Que Criei: 8 Tópicos/Dia: 0.00 Meu Conteúdo: 41 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 285 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 37 Denunciar Compartilhar Postado 3 de Dezembro de 2008 já executou essa sentença no SQL? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Alexandre_Magno Postado 3 de Dezembro de 2008 Tópicos Que Criei: 14 Tópicos/Dia: 0.00 Meu Conteúdo: 55 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 415 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 61 Autor Denunciar Compartilhar Postado 3 de Dezembro de 2008 já executou essa sentença no SQL? Boa tarde Renato. Esecutei sim pelo SQL Explorer e está retornando como na planilha. Trocando os campos da psecao por pfunc chapa e nome, observa-se que nesta coluna do CASE está retornando funcionários de várias seções. Acho que não está aceitando o relacionamento PFUNC e PSECAO... Abraços. Alexandre. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
renato Postado 3 de Dezembro de 2008 Tópicos Que Criei: 8 Tópicos/Dia: 0.00 Meu Conteúdo: 41 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 285 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 37 Denunciar Compartilhar Postado 3 de Dezembro de 2008 depois de todos os CASES, tem o FROM PFUNC P, certo? Altere chamando PSECAO e onde está o LEFT JOIN PSECAO S coloque PFUNC, faça este teste.. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Alexandre_Magno Postado 3 de Dezembro de 2008 Tópicos Que Criei: 14 Tópicos/Dia: 0.00 Meu Conteúdo: 55 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 415 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 61 Autor Denunciar Compartilhar Postado 3 de Dezembro de 2008 depois de todos os CASES, tem o FROM PFUNC P, certo? Altere chamando PSECAO e onde está o LEFT JOIN PSECAO S coloque PFUNC, faça este teste.. Não alterou o resultado... Alexandre. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
renato Postado 3 de Dezembro de 2008 Tópicos Que Criei: 8 Tópicos/Dia: 0.00 Meu Conteúdo: 41 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 285 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 37 Denunciar Compartilhar Postado 3 de Dezembro de 2008 cria uma nova sentença e coloca um case de cada vez... coloca um case e executa, verifica como ficou, depois coloca outro case e assim vai.. outra coisa, testou retirando os campos da psecao? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Alexandre_Magno Postado 3 de Dezembro de 2008 Tópicos Que Criei: 14 Tópicos/Dia: 0.00 Meu Conteúdo: 55 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 415 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 61 Autor Denunciar Compartilhar Postado 3 de Dezembro de 2008 cria uma nova sentença e coloca um case de cada vez... coloca um case e executa, verifica como ficou, depois coloca outro case e assim vai.. outra coisa, testou retirando os campos da psecao? Todos os CASE's retornam os valores corretos (separado ou agrupado), esceto o E.CODENCARGO,. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Vitor Migliani Postado 4 de Dezembro de 2008 Tópicos Que Criei: 15 Tópicos/Dia: 0.00 Meu Conteúdo: 52 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 405 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Denunciar Compartilhar Postado 4 de Dezembro de 2008 Tente tirar o CASE do codencargo... voce já está fixando o código do mesmo no WHERE logo abaixo... como fica? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Mauro André Postado 4 de Dezembro de 2008 Tópicos Que Criei: 65 Tópicos/Dia: 0.01 Meu Conteúdo: 333 Conteúdo/Dia: 0.05 Reputação: 2 Pontos/Conquistas: 2.309 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 46 Dispositivo: Windows Denunciar Compartilhar Postado 4 de Dezembro de 2008 troca o Left Join por Inner Join pra que traga somente o relacionamenro da pfunc e da psecao Abraços Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Alexandre_Magno Postado 4 de Dezembro de 2008 Tópicos Que Criei: 14 Tópicos/Dia: 0.00 Meu Conteúdo: 55 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 415 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 61 Autor Denunciar Compartilhar Postado 4 de Dezembro de 2008 Bom dia a todos. Efetuei as alterações trocando o left join por inner join no relacionamento da psecao, suprimi o case da PFENCARGO isoladamente e em conjunto e o resulado não alterou com nenhuma das alterações... É muito esquisito... Abraços a todos. Alexandre. 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.