Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 9 anos, 8 meses atrás por Avatar de Paulo MateusPaulo Mateus.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #107411
    Avatar de ViníciosVinícios
    Participante

      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.

      #107424
      Avatar de Paulo MateusPaulo Mateus
      Participante

        Bom 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) END

        FROM 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;

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.
      plugins premium WordPress