none
Query para selecionar registros não pagos seguindo um critério RRS feed

  • Pergunta

  • bom dia,

    faço cobranças mensais, quando um cliente possui 6 cobranças seguidas marcadas como não pagas ele deve ser automaticamente cancelado, eu não sei como posso fazer esta seleção levando em consideração as "6 cobranças não pagas seguidas", ou seja:

    select a.ID_CLIENTE, count(*) from CLIENTE a
    	inner join FATURA b
    	on a.ID_CLIENTE = b.ID_CLIENTE
    	and a.ID_SITUACAO in (1, 4)
    	and b.ID_RETORNO_DCO <> 1
    	group by a.ID_CLIENTE
    	having count(*) > 6
    	order by a.ID_CLIENTE
    

    minha query até retorna quem possui inadimplência acima de 6, mas não necessariamente vai trazer quem possui a inadimplência sequencialmente acima de 6, tipo janeiro, fevereiro, março, abril, maio junho.

    alguma luz?


    Leonardo Jacques da Silva Desenvolvedor .net

    terça-feira, 27 de outubro de 2015 14:07

Respostas

  • Boa tarde,

    Experimente fazer um teste:

    with 
        CTE_RN as
        (
            select
                ID_Cliente,
                ID_Retorno_Dco,
                ROW_NUMBER() OVER(PARTITION BY ID_Cliente ORDER BY ID_Fatura) as RN,
                ROW_NUMBER() OVER(PARTITION BY ID_Cliente, ID_Retorno_Dco ORDER BY ID_Fatura) as RN_Ret
            from Fatura
        ),
        
        CTE_Count as
        (
            select
                ID_Cliente,
                COUNT(*) as Qtde 
            from CTE_RN
            where 
                ID_Retorno_Dco <> 1
            group by
                ID_Cliente,
                RN - RN_Ret
            having 
                COUNT(*) >= 6
        )
    
    select h.ID_Cliente, h.Qtde
    from CTE_Count as h
    inner join Cliente as c
        on c.ID_Cliente = h.ID_Cliente
    where
        c.ID_Situacao in (1, 4)
    order by
        ID_Cliente

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Sugerido como Resposta Logan Destefani Merazzi terça-feira, 27 de outubro de 2015 16:45
    • Marcado como Resposta Marcos SJ terça-feira, 27 de outubro de 2015 17:30
    terça-feira, 27 de outubro de 2015 16:23