Estou fazendo um gráfico para exibir cotações de moeda. Minha tabela não possui a cotação de todos os dias, o que deixa o gráfico com falhas. Para isso, quero fazer uma query que me traga, para os dias onde não haja cotação, a última cotação anterior.
Exemplo: Tabela:
Data | Taxa
01/01 | 2.23
02/01 | 2.25
03/01 |
04/01 | 2.30
Data | Taxa
01/01 | 2.23
02/01 | 2.25
03/01 | 2.25
04/01 | 2.30
SELECT XTAB.DATA,
(SELECT MAX (MOEDAS_COTACAO.TAXA)KEEP (DENSE_RANK FIRST ORDER BY MOEDAS_COTACAO.DATA DESC NULLS LAST)
FROM MOEDAS_COTACAO
WHERE MOEDAS_COTACAO.CODIGO = /*dólar*/ 220
AND MOEDAS_COTACAO.DATA <= XTAB.DATA) AS TAXA
FROM (SELECT TRUNC (SYSDATE) - :XDIAS + LEVEL AS DATA
FROM DUAL
CONNECT BY LEVEL <= :XDIAS
ORDER BY 1) XTAB