ORACLE - Pegar últimos 5 dias de um intervalo definido na query.
Tenho uma query que usa between para filtrar um intervalo entre datas, porém surgiu a necessidade de filtrar os últimos 5 dias do desse intervalo de datas, por exemplo:
No caso aí inserido acima que é parte da minha query, era se possível pegar apenas do dia 15/07/2020 até o 20/07/2020.
DH_MVTO_ESTOQUE BETWEEN TO_DATE ('20/05/2020', 'dd/mm/yyyy') AND TO_DATE ('20/07/2020', 'dd/mm/yyyy')
No caso aí inserido acima que é parte da minha query, era se possível pegar apenas do dia 15/07/2020 até o 20/07/2020.
Marcus Vinícius
Curtidas 0
Respostas
Emerson Nascimento
05/10/2020
não conheço os recursos do Oracle, mas acho que isto pode funcionar:
SELECT DH_MVTO_ESTOQUE FROM ( SELECT DH_MVTO_ESTOQUE FROM TABELA WHERE DH_MVTO_ESTOQUE BETWEEN TO_DATE ('20/05/2020', 'dd/mm/yyyy') AND TO_DATE ('20/07/2020', 'dd/mm/yyyy') GROUP BY DH_MVTO_ESTOQUE ORDER BY DH_MVTO_ESTOQUE DESC ) T WHERE ROWNUM <= 5
GOSTEI 0
Marcus Vinícius
05/10/2020
não conheço os recursos do Oracle, mas acho que isto pode funcionar:
Porém essa table tem a dh_mvto_estoque de vários produtos, ou seja, tenho que retornar os ultimos 5 dias de consumo de cada produto, nesse caso com rownum vai vir 5 linhas no total, apenas das datas mas próximas.. Ou seja, consegui em partes, coloquei DH_MVTO_ESTOQUE ESC e depois order by cd produto, mas como retornas agora apenas 5 ultimas datas de cada produto?
SELECT DH_MVTO_ESTOQUE FROM ( SELECT DH_MVTO_ESTOQUE FROM TABELA WHERE DH_MVTO_ESTOQUE BETWEEN TO_DATE ('20/05/2020', 'dd/mm/yyyy') AND TO_DATE ('20/07/2020', 'dd/mm/yyyy') GROUP BY DH_MVTO_ESTOQUE ORDER BY DH_MVTO_ESTOQUE DESC ) T WHERE ROWNUM <= 5
GOSTEI 0
Marcus Vinícius
05/10/2020
não conheço os recursos do Oracle, mas acho que isto pode funcionar:
Porém essa table tem a dh_mvto_estoque de vários produtos, ou seja, tenho que retornar os ultimos 5 dias de consumo de cada produto, nesse caso com rownum vai vir 5 linhas no total, apenas das datas mas próximas.. Ou seja, consegui em partes, coloquei DH_MVTO_ESTOQUE ESC e depois order by cd produto, mas como retornas agora apenas 5 ultimas datas de cada produto?SELECT DH_MVTO_ESTOQUE FROM ( SELECT DH_MVTO_ESTOQUE FROM TABELA WHERE DH_MVTO_ESTOQUE BETWEEN TO_DATE ('20/05/2020', 'dd/mm/yyyy') AND TO_DATE ('20/07/2020', 'dd/mm/yyyy') GROUP BY DH_MVTO_ESTOQUE ORDER BY DH_MVTO_ESTOQUE DESC ) T WHERE ROWNUM <= 5
GOSTEI 0