estou com uma dúvida quanto a obter o resultado de um relatório em SQL.
A questão é o seguinte:
Trabalho em uma operadora de plano de saúde, e queremos pegar parcelas em aberto de usuários que não pagaram seus planos nos anos de 2007 e 2008. Fiz a query sem problemas, e alguns usuários retornaram mais de 8 parcelas em aberto no período. O problema é que por lei, não podemos cobrar as 8 parcelas, podemos cobrar no máximo duas, das oito parcelas.
Esse é o X da questão: como adaptar essa query para que ele possa pegar apenas as duas parcelas mais antigas das oito ou mais parcelas que aparecerem?????
A query que faz a busca das parcelas é essa a seguir:
select distinct
ven.ven_cbn_cod_contrato "CONTRATO",
decode(cbn.cbn_status,'A','ATIVO','R','RESCINDIDO','S','SUSPENSO') "STATUS",
psf.psf_nome "CONTRATANTE",
psf.psf_numero_cpf "CPF",
trunc((sysdate-psf.psf_data_nascimento)/365) "IDADE",
tpl.tpl_abreviacao||' '||nml.nml_nome "ENDERECO",
epe.epe_numero "NUMERO",
brr.brr_nome "BAIRRO",
lbr.lbr_cep "CEP",
nup.nup_nome "MUNICIPIO",
nup.nup_est_sigla "UF",
ven.ven_codigo_venda "VENDA",
to_char(prc.prc_data_vencimento,'dd/mm/yyyy') "VENCIMENTO",
prc.prc_valor "VALOR",
trunc(sysdate - prc.prc_data_vencimento) "DIAS EM ATRASO"
from
inf_vendas ven
join inf_parcelas_receber prc on (ven.ven_codigo_venda = prc.prc_ven_codigo_venda)
join inf_contratos_de_beneficiario cbn on (ven.ven_cbn_cod_contrato = cbn.cbn_cod_contrato)
join inf_pessoas_fisicas psf on (cbn.cbn_pss_cod_pessoa = psf.psf_pss_cod_pessoa)
join inf_enderecos_pessoa epe on (psf.psf_pss_cod_pessoa = epe.epe_pss_cod_pessoa)
join inf_logradouros lbr on (epe.epe_lbr_codigo_lograd = lbr.lbr_codigo_lograd)
join inf_tipos_logradouros tpl on (lbr.lbr_tpl_codigo_tipo = tpl.tpl_codigo_tipo)
join inf_nomes_logradouros nml on (lbr.lbr_nml_codigo_nome = nml.nml_codigo_nome)
join inf_bairros brr on (lbr.lbr_brr_codigo_bairro = brr.brr_codigo_bairro)
join inf_municipios nup on (brr.brr_nup_codigo_municipio = nup.nup_codigo_municipio)
where
prc.prc_data_recebimento is null and
prc.prc_data_vencimento between '01/01/2007' and '31/12/2008' and
ven.ven_cancelada != 'S'
group by
ven.ven_cbn_cod_contrato,
cbn.cbn_status,
psf.psf_nome,
psf.psf_numero_cpf,
trunc((sysdate-psf.psf_data_nascimento)/365),
tpl.tpl_abreviacao||' '||nml.nml_nome,
epe.epe_numero,
brr.brr_nome,
lbr.lbr_cep,
nup.nup_nome,
nup.nup_est_sigla,
ven.ven_codigo_venda,
to_char(prc.prc_data_vencimento,'dd/mm/yyyy'),
prc.prc_valor,
trunc(sysdate - prc.prc_data_vencimento)
Espero ter sido compreendido e espero a ajuda de vocês, urgente pessoal!!!