- Este tópico contém 17 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 6 meses atrás por
burga.
- Você deve fazer login para responder a este tópico.
mas como que faço para pegar um valor anterior…
obg
cara esse é o ultimo passo dessa consulta, mas não estou conseguindo sair do lugar … se não for te pedir muito sera que pode me dar o passo olha como ja esta
select DISTINCT zx.nome_cliente, zx.nome_do_fundo, co.data, CO.valor / co.valor
from cotacoes CO, fundos FUN, zxt_calc_rentabilidade ZX
where zx.nome_cliente = (:nome) and co.cod_produto = zx.cod_produto and
co.data in (select max(RET_DATA) from
(select to_date(zt.data_entrada)+level-1 RET_DATA from dual, zxt_calc_rentabilidade ZT
connect by
to_date(zt.data_entrada)+level-1
<= last_day(to_date(zt.data_final))
MINUS
select data
from feriados_internacionais)
GROUP by
to_char(RET_DATA,'MM/YYYY')
)
order by co.data
Olhando sua consulta, não tenho muita certeza de que ela está certa, de que você está seguindo o caminho certo…
Seria bom você postar os comandos de criação das tabelas envolvidas (cotacoes, fundos e zxt_calc_rentabilidade) e comandos de inserts pra popular as tabelas com uma amostragem dos dados delas e mais a saída desejada para a sua consulta de acordo com os dados que você nos passar.
Sem isto, a partir daqui já fica complicado te ajudar, pois já vamos ter que começar a supor as coisas, o que sempre nos leva a um desperdício de esforço…
8)
Duas coisas me chamaram a atenção e me fizeram acreditar que existe problema na sua consulta. Primeiro é o fato de você usar a tabela FUNDOS mas não ter nenhuma condição pra ela, o que vai acarretar em um cross join dela com o join das tabelas cotacoes e zxt_calc_rentabilidade. Outro problema bastante visível é a maneira como você está usando o connect by com a tabela zxt_calc_rentabilidade, somente com a dual não teria problemas, mas com uma tabela com mais de um registro a consulta começa a duplicar a saída exponencialmente a cada nível (e existiriam vários níveis), um distinct resolveria mas ainda assim não tenho certeza de que a saída seria a que você deseja…
Mas vamos lá, não desista, porque no começo é assim mesmo! Estude e tente entender as cláusulas envolvidas. Quando você começar a entender as cláusulas e o que elas fazem você vai matar esses problemas em dois tempos!! 🙂