Henrique oliveira Postado 5 de Junho de 2014 Tópicos Que Criei: 58 Tópicos/Dia: 0.01 Meu Conteúdo: 195 Conteúdo/Dia: 0.04 Reputação: 2 Pontos/Conquistas: 1.557 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 49 Denunciar Compartilhar Postado 5 de Junho de 2014 Prezados boa tarde, Fiz uma planilha pra trazer os dados de pensão, só que qdo faço a inserção do Filtro na Planilha dá erro.Estou na versão Delphi e não utilizo máquina de cálculo.Alguem pode ajudar ?Obrigado e abaixo a SQL SELECT A.CHAPA, B.NOME, D.PERCENTUAL ||'%' ||C.NROVEZES ||'x' AS TOTAL_PERCENT, D.RESPONSAVEL, (SELECT NVL(F.VALOR,0) FROM PFFINANC F WHERE F.CHAPA=A.CHAPA AND F.MESCOMP=:PLN_Sheet1!$C$1_V AND F.ANOCOMP=:PLN_Sheet1!$C$2_V AND F.CODEVENTO='0123') AS EVENTO_UM, (SELECT NVL(F.VALOR,0) FROM PFFINANC F WHERE F.CHAPA=A.CHAPA AND F.MESCOMP=:PLN_Sheet1!$C$1_V AND F.ANOCOMP=:PLN_Sheet1!$C$2_V AND F.CODEVENTO='0137') AS EVENTO_DOIS, (SELECT NVL(F.VALOR,0) FROM PFFINANC F WHERE F.CHAPA=A.CHAPA AND F.MESCOMP=:PLN_Sheet1!$C$1_V AND F.ANOCOMP=:PLN_Sheet1!$C$2_V AND F.CODEVENTO='0187') AS EVENTO_TRES, (SELECT NVL(M.VALOR,0) FROM PFDEPMOV M INNER JOIN PFDEPEND P ON (((P.CHAPA = M.CHAPA) AND (P.CODCOLIGADA = M.CODCOLIGADA) AND (P.NRODEPEND = M.NRODEPEND))) WHERE M.CHAPA=A.CHAPA AND M.MESCOMP=:PLN_Sheet1!$C$1_V AND M.ANOCOMP=:PLN_Sheet1!$C$2_V AND P.INCPENSAO=1 AND M.NRODEPEND=1) AS DEP_I, (SELECT NVL(M.VALOR,0) FROM PFDEPMOV M INNER JOIN PFDEPEND P ON (((P.CHAPA = M.CHAPA) AND (P.CODCOLIGADA = M.CODCOLIGADA) AND (P.NRODEPEND = M.NRODEPEND))) WHERE M.CHAPA=A.CHAPA AND M.MESCOMP=:PLN_Sheet1!$C$1_V AND M.ANOCOMP=:PLN_Sheet1!$C$2_V AND P.INCPENSAO=1 AND M.NRODEPEND=2) AS DEP_II, (SELECT NVL(M.VALOR,0) FROM PFDEPMOV M INNER JOIN PFDEPEND P ON (((P.CHAPA = M.CHAPA) AND (P.CODCOLIGADA = M.CODCOLIGADA) AND (P.NRODEPEND = M.NRODEPEND))) WHERE M.CHAPA=A.CHAPA AND M.MESCOMP=:PLN_Sheet1!$C$1_V AND M.ANOCOMP=:PLN_Sheet1!$C$2_V AND P.INCPENSAO=1 AND M.NRODEPEND=3) AS DEP_III, (SELECT NVL(M.VALOR,0) FROM PFDEPMOV M INNER JOIN PFDEPEND P ON (((P.CHAPA = M.CHAPA) AND (P.CODCOLIGADA = M.CODCOLIGADA) AND (P.NRODEPEND = M.NRODEPEND))) WHERE M.CHAPA=A.CHAPA AND M.MESCOMP=:PLN_Sheet1!$C$1_V AND M.ANOCOMP=:PLN_Sheet1!$C$2_v AND P.INCPENSAO=1 AND M.NRODEPEND=4) AS DEP_IV, (SELECT NVL(M.VALOR,0) FROM PFDEPMOV M INNER JOIN PFDEPEND P ON (((P.CHAPA = M.CHAPA) AND (P.CODCOLIGADA = M.CODCOLIGADA) AND (P.NRODEPEND = M.NRODEPEND))) WHERE M.CHAPA=A.CHAPA AND M.MESCOMP=:PLN_Sheet1!$C$1_V AND M.ANOCOMP=:PLN_Sheet1!$C$2_V AND P.INCPENSAO=1 AND M.NRODEPEND=5) AS DEP_V, (SELECT NVL(M.VALOR,0) FROM PFDEPMOV M INNER JOIN PFDEPEND P ON (((P.CHAPA = M.CHAPA) AND (P.CODCOLIGADA = M.CODCOLIGADA) AND (P.NRODEPEND = M.NRODEPEND))) WHERE M.CHAPA=A.CHAPA AND M.MESCOMP=:PLN_Sheet1!$C$1_V AND M.ANOCOMP=:PLN_Sheet1!$C$2_v AND P.INCPENSAO=1 AND M.NRODEPEND=6) AS DEP_VI, (SELECT NVL(M.VALOR,0) FROM PFDEPMOV M INNER JOIN PFDEPEND P ON (((P.CHAPA = M.CHAPA) AND (P.CODCOLIGADA = M.CODCOLIGADA) AND (P.NRODEPEND = M.NRODEPEND))) WHERE M.CHAPA=A.CHAPA AND M.MESCOMP=:PLN_Sheet1!$C$1_V AND M.ANOCOMP=:PLN_Sheet1!$C$2_V AND P.INCPENSAO=1 AND M.NRODEPEND=7) AS DEP_VIIFROM PFFINANC A INNER JOIN PFUNC B ON ((B.CODCOLIGADA = A.CODCOLIGADA) AND (B.CHAPA = A.CHAPA)) INNER JOIN PFCODFIX C ON ((C.CODCOLIGADA = A.CODCOLIGADA) AND (C.CHAPA = A.CHAPA)) INNER JOIN PFDEPEND D ON ((D.CHAPA = B.CHAPA) AND (D.CODCOLIGADA = B.CODCOLIGADA))WHERE A.MESCOMP=:PLN_Sheet1!$C$1_V AND A.ANOCOMP=:PLN_Sheet1!$C$2_V AND A.CODEVENTO IN ('0123','0137','0187') AND D.PERCENTUAL IS NOT NULL AND D.INCPENSAO=1GROUP BY D.RESPONSAVEL, A.CHAPA, A.CODEVENTO, B.NOME, C.NROVEZES, D.PERCENTUAL, D.NOMEORDER BY B.NOME, D.RESPONSAVEL Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Robinson Postado 5 de Junho de 2014 Tópicos Que Criei: 58 Tópicos/Dia: 0.01 Meu Conteúdo: 672 Conteúdo/Dia: 0.11 Reputação: 25 Pontos/Conquistas: 4.005 Conteúdo Resolvido: 0 Dias Ganho: 18 Status: Offline Idade: 48 Denunciar Compartilhar Postado 5 de Junho de 2014 Olá HenriquePelo que pude entender o seu banco de dados é ORACLESei muito pouco deste banco mas, acho que posso te ajudar.Primeiro me confirma se no trecho a seguir você está concatenando os campos: D.PERCENTUAL || '%' || C.NROVEZES || 'x' AS TOTAL_PERCENT Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Henrique oliveira Postado 6 de Junho de 2014 Tópicos Que Criei: 58 Tópicos/Dia: 0.01 Meu Conteúdo: 195 Conteúdo/Dia: 0.04 Reputação: 2 Pontos/Conquistas: 1.557 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 49 Autor Denunciar Compartilhar Postado 6 de Junho de 2014 Olá Henrique Pelo que pude entender o seu banco de dados é ORACLE Sei muito pouco deste banco mas, acho que posso te ajudar. Primeiro me confirma se no trecho a seguir você está concatenando os campos: D.PERCENTUAL || '%' || C.NROVEZES || 'x' AS TOTAL_PERCENT Bom dia tudo bem ? Estou sim concatenando, porém quando fiz a inserção destro filtro na query MESCOMP=:PLN_Sheet1!$C$1_V e ANOCOMP=:PLN_Sheet1!$C$2_V. Dá erro , sabe como me ajudar ? Obrigado. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Robinson Postado 6 de Junho de 2014 Tópicos Que Criei: 58 Tópicos/Dia: 0.01 Meu Conteúdo: 672 Conteúdo/Dia: 0.11 Reputação: 25 Pontos/Conquistas: 4.005 Conteúdo Resolvido: 0 Dias Ganho: 18 Status: Offline Idade: 48 Denunciar Compartilhar Postado 6 de Junho de 2014 Bom dia Tudo joia. Pelo que vi o erro está justamente na concatenação. Não sei exatamente como o ORACLE trata isso e nem o comando de conversão no ORACLE mas, no SQL eu só conseguiria concatenar estes campos de eu os converte-se de numérico para string, assim: CAST(D.PERCENTUAL AS VARCHAR) + '%' + CAST(C.NROVEZES AS VARCHAR) + 'x' AS TOTAL_PERCENT No SQL eu também troco os || pipes pelo sinal de mais + Faça um teste convertendo os campo na consulta para texto, veja qual o comando para isso no ORACLE e me diga se deu certo. Até 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.