Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rprado

de MSSQL para Oracel = select

Recommended Posts

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.