rprado 0 Denunciar post Postado Junho 27, 2008 Gostaria de saber como converter esta sequencia em MSSQL para Oracle SELECT PP.CODCOLIGADA, PP.CHAPA, PP.DTMUDANCA, PP.CODSECAO FROM ( SELECT PFHSTSEC.CODCOLIGADA, PFHSTSEC.CHAPA, MAX(PFHSTSEC.DTMUDANCA) MAIORDATA FROM PFHSTSEC WHERE PFHSTSEC.DTMUDANCA <= LAST_DAY(TO_DATE('01/05/2008','DD/MM/YYYY')) GROUP BY PFHSTSEC.CODCOLIGADA, PFHSTSEC.CHAPA ) P, PFHSTSEC PP WHERE P.CODCOLIGADA = PP.CODCOLIGADA AND P.CHAPA = PP.CHAPA AND P.MAIORDATA = PP.DTMUDANCA GROUP BY PP.CODCOLIGADA, PP.CHAPA, PP.DTMUDANCA, PP.CODSECAO Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 27, 2008 Não vi motivo para não funcionar em Oracle , qual o erro que dá ? Compartilhar este post Link para o post Compartilhar em outros sites
rprado 0 Denunciar post Postado Junho 27, 2008 Esta dando este erro "ORA-00979 not a GROUP BY expression" Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Junho 27, 2008 também estou curioso, pq não funciona no oracle é mais fácil não funcionar no SQL Server mesmo pq acredito que não exista no SQL Server as funções LAST_DAY e TO_DATE Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Junho 27, 2008 SELECT PP.CODCOLIGADA, PP.CHAPA, PP.DTMUDANCA, PP.CODSECAO FROM ( SELECT PFHSTSEC.CODCOLIGADA, PFHSTSEC.CHAPA, MAX(PFHSTSEC.DTMUDANCA) MAIORDATA FROM PFHSTSEC WHERE PFHSTSEC.DTMUDANCA <= LAST_DAY(TO_DATE('01/05/2008','DD/MM/YYYY')) GROUP BY PFHSTSEC.CODCOLIGADA, PFHSTSEC.CHAPA ) P, PFHSTSEC PP WHERE P.CODCOLIGADA = PP.CODCOLIGADA AND P.CHAPA = PP.CHAPA AND P.MAIORDATA = PP.DTMUDANCA não tem o último group by Compartilhar este post Link para o post Compartilhar em outros sites
rprado 0 Denunciar post Postado Junho 27, 2008 Eu alterei o codigo para o Oracle .. Mesmo retirando o ultimo Group By o erro permanece Grato Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Junho 27, 2008 SELECT PFHSTSEC.CODCOLIGADA, PFHSTSEC.CHAPA, MAX(PFHSTSEC.DTMUDANCA) MAIORDATA FROM PFHSTSEC WHERE PFHSTSEC.DTMUDANCA <= LAST_DAY(TO_DATE('01/05/2008','DD/MM/YYYY')) GROUP BY PFHSTSEC.CODCOLIGADA, PFHSTSEC.CHAPA essa consulta executa normal e o resultado não é nulo? Compartilhar este post Link para o post Compartilhar em outros sites
rprado 0 Denunciar post Postado Junho 27, 2008 Sim, normalmente. Consegui executar a script aqui, peguei um backup anterior e funcionou. Sera que o banco esta corrompido ou alguma coisa do tipo ? Grato Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 27, 2008 SELECT PP.CODCOLIGADA, PP.CHAPA, PP.DTMUDANCA, PP.CODSECAO FROM ( SELECT PFHSTSEC.CODCOLIGADA, PFHSTSEC.CHAPA, MAX(PFHSTSEC.DTMUDANCA) MAIORDATA FROM PFHSTSEC WHERE PFHSTSEC.DTMUDANCA <= LAST_DAY(TO_DATE('01/05/2008','DD/MM/YYYY')) GROUP BY PFHSTSEC.CODCOLIGADA, PFHSTSEC.CHAPA ) P, PFHSTSEC PP WHERE P.CODCOLIGADA = PP.CODCOLIGADA AND P.CHAPA = PP.CHAPA AND P.MAIORDATA = PP.DTMUDANCA Realmente não tem o último GROUP BY. Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Junho 28, 2008 Bom... o SELECT está no padrão ANSI-SQL, retirando o GROUP BY, deveria funcionar sim. O banco de dados não está corrompido e nem com outros problemas de SORT, REFERENCIAS ou funções, pq o erro seria outro. Abraços, :lol: Compartilhar este post Link para o post Compartilhar em outros sites