- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 9 anos, 8 meses atrás por Paulo Mateus.
-
AutorPosts
-
11 de março de 2015 às 8:09 pm #107411ViníciosParticipante
Boa Tarde,
Estou com um problema no desenvolvimento de uma query e não estou conseguindo uma solução prática e simples.
create table tb_saldo
(
dt_atual date,
cd_cliente number(7),
vl_saldo number
);insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’26-07-2007′, ‘dd-mm-yyyy’), 112703, -10);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’27-07-2007′, ‘dd-mm-yyyy’), 112703, -20);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’30-07-2007′, ‘dd-mm-yyyy’), 112703, 10);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’31-07-2007′, ‘dd-mm-yyyy’), 112703, -20);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’01-08-2007′, ‘dd-mm-yyyy’), 112703, -40);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’02-08-2007′, ‘dd-mm-yyyy’), 112703, -50);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’03-08-2007′, ‘dd-mm-yyyy’), 112703, -60);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’06-08-2007′, ‘dd-mm-yyyy’), 112703, -10);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’07-08-2007′, ‘dd-mm-yyyy’), 112703, 10);
insert into tb_saldo (dt_atual, cd_cliente, vl_saldo) values (to_date(’09-08-2007′, ‘dd-mm-yyyy’), 112703, 20);Queria fazer um select por um intervalo de data, retornasse os dias devedores recorrente do cliente.
Cliente 112703 dia ’26-07-2007′ está devedor recorrrente a 1 dia.
Cliente 112703 dia ’27-07-2007′ está devedor recorrrente a 2 dias.
Cliente 112703 dia ’30-07-2007′ não está devedor;
Cliente 112703 dia ’31-07-2007′ está devedor recorrrente a 1 dia.
Cliente 112703 dia ’01-08-2007′ está devedor recorrrente a 2 dias.
Cliente 112703 dia ’02-08-2007′ está devedor recorrrente a 3 dia.
Cliente 112703 dia ’03-08-2007′ está devedor recorrrente a 4 dias.
Cliente 112703 dia ’06-08-2007′ está devedor recorrrente a 5 dias.
Cliente 112703 dia ’07-08-2007′ não está devedor;
Cliente 112703 dia ’09-08-2007′ não está devedor;Alguém tem alguma solução por favor.
20 de março de 2015 às 7:17 pm #107424Paulo MateusParticipanteBom dia,
Esta consulta monta um resultado com quantos dias de saldo devedor o caboclo tem. Veja se resolve…
depois é só montar a frase aí que vc quer… quer ajuda pra isso tbm? abraços!WITH CLIENTE_BY_DATA AS( SELECT ROWNUM AS LINHA, TB_SALDO.* FROM TB_SALDO ORDER BY DT_ATUAL )
SELECT RESULTADO.*,
(SELECT
CASE
WHEN RESULTADO.VL_SALDO > 0 THEN 0
ELSE
RESULTADO.DT_ATUAL –
NVL(MAX(SUB.DT_ATUAL),:INICIO) ENDFROM CLIENTE_BY_DATA SUB
WHERE SUB.LINHA 0) DIAS_DEVENDO
FROM CLIENTE_BY_DATA RESULTADO WHERE RESULTADO.DT_ATUAL > TO_DATE(:INICIO,’dd-mm-yyyy’)
AND RESULTADO.DT_ATUAL <= TO_DATE(:FIM,'dd-mm-yyyy')
ORDER BY RESULTADO.LINHA; -
AutorPosts
- Você deve fazer login para responder a este tópico.