Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelo.albuquerque18

Cálculo entre linhas de uma consulta sql

Recommended Posts

Galera, to precisando de ajuda. Tenho uma consulta que traz as mensalidades de um de um beneficiário mês a mês. O que eu preciso é criar nesse Relatorio uma coluna que traga a diferença de valores entre os meses.

 

beneficiario valor Mes diferenca

jose 100 1 0

jose 123 2 23

jose 123 3 0

jose 110 4 -13

 

 

Preciso que me retorne isso ai.

 

Obrigado desde já!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Solucoes

 

1 uma function de usuario que retorne o valor de mes faca a pesquisa usando a function padrao add_months

 

2 um join fazendo mes=mes-1 , tratando o caso jan/dez

 

3 talvez usando "analytic fuctions" mas nao estou certo se ira funcionar

http://oracle-base.com/articles/misc/analytic-functions.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

solução 2 eu tinha tentado, mas não funcionou, não retornava resultado. As outras duas confesso que não entendi.

Segue o script, caso vc possa me ajudar.

 

 

SELECT b.nome_beneficiario,
cc.cod_beneficiario,
cc.cod_verba,
vbe.desc_verba,
cc.ano,
cc.mes,
cc.item_prod_unimed item,
cc.valor,
ct.data_vencimento,
DECODE (cc.situacao,
'C', 'CANCELADO',
'L', 'LIQUIDADO',
'F', 'ABERTO',
cc.situacao)
situacao,
cc.idade
FROM contacorr_benef_credito cc,
verba_emp_benef vbe,
carnets ct,
beneficiario b
WHERE cc.num_doc = ct.num_carnet
AND cc.cod_unimed = ct.cod_unimed
AND cc.cod_empresa = ct.cod_empresa
AND cc.cod_contrato = ct.cod_contrato
AND cc.cod_verba = vbe.cod_verba
AND cc.cod_beneficiario = b.cod_beneficiario
AND cc.cod_empresa = 9999
AND cc.cod_familia = 9999
AND cc.ano BETWEEN 2010 AND 2014
AND cc.mes BETWEEN 01 AND 12
AND cc.cod_verba = 9999

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem de ser um join da tabela que ela mesma , a diferença e que o join se dará pelo mes =mes-1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.