Olá pessoal…
Estou com um pequeno problema na correção de um software da empresa.
Este software gera um relatório PDF com com uma quantidade de manutenções atendidas e valor a ser pago mensalmente por elas.
O software antes possuia uma combobox para que fosse selecionado o mês a ser consultado e hoje ele possui 6 jTextFields onde o usuário insere data inicial e data final para a consulta, porém sempre colocando períodos de mês fechado.
Meu problema é que rodando os dois programas ao mesmo tempo os relatórios gerados tem diferença, eles teriam que ser exatos pois foram gerados no mesmo periodo de tempo, mas o que foi recentemente editado gera mais manutenções e consequentemente um maior valor total.
Já fiz diversas análises e testes e não consigo encontrar o problema.
É possível alguém me dar uma dica do que pode estar ocorrendo?
SQL do programa original:
select * from(
/*Acordos*/
select 4 ordem,'C' tipo,nvl('Acordo ' || t.codigo_do_acordo || '-' || t.descricao_do_acordo ,'Acordos') descricao,count(*)quantidade,nvl(sum(t.valor_do_acordo),0)valor
from ARADMIN.SAS_Acordos t where t.status = 0 /*Ativo*/ and t.data_inicial between $P!{DATA_INICIAL} and
$P!{DATA_FINAL} and tipo_do_acordo=0 /*FIXO*/ and t.codigo_da_credenciada = '$P!{CRED_ID}' group by
nvl('Acordo ' || t.codigo_do_acordo || '-' || t.descricao_do_acordo ,'Acordos')
union all
/*Multas*/
select 5 ordem,'D' tipo,'Multas',count(*)quantidade,nvl(sum(t2.valor_de_debito),0)valor
from ARADMIN.SAS_Multas t2 where t2.status = 0 and /*Procede*/
t2.registro_da_multa between $P!{DATA_INICIAL} and $P!{DATA_FINAL} and
t2.codcred_='$P!{CRED_ID}'
union all
/*Divergencias*/
select 6 ordem,'C' tipo,'Divergências', count(*)quantidade, nvl(sum(t3.saldo_final),0) valor
from ARADMIN.SAS_Divergencias t3 where t3.codcred_ = '$P!{CRED_ID}' and
t3.registro_da_analise between $P!{DATA_INICIAL} and $P!{DATA_FINAL} and
t3.status=1 /*Analisada*/
union all
/*Valor Pagamento*/
Select 1 ordem,'C' tipo,'Valor de Pagamento de Serviço',count(*) quantidade, NVL(sum(t4.VALOR_A_PAGAR),0) valor
from ARADMIN.SAS_OS t4 where t4.REGISTRO_DO_ATENDIMENTO >= $P!{DATA_INICIAL} and
t4.REGISTRO_DO_ATENDIMENTO <= $P!{DATA_FINAL} and t4.CODCRED_ = '$P!{CRED_ID}' and
t4.STATUS in (3,4) and t4.VALOR_A_PAGAR>0
union all
/* Valor Deslocamento*/
Select 2 ordem,'C' tipo,'Valor de Pagamento de Deslocamento', count(*) quantidade,
nvl(sum(t5.VALOR_DESLOCAMENTO),0) valor
from ARADMIN.SAS_OS t5 where t5.REGISTRO_DO_ATENDIMENTO >= $P!{DATA_INICIAL} and
t5.REGISTRO_DO_ATENDIMENTO <= $P!{DATA_FINAL} and t5.CODCRED_ = '$P!{CRED_ID}' and
t5.STATUS in (3,4) and t5.VALOR_DESLOCAMENTO > 0
union all
/* Valor Adicional Deslocamento*/
select * from(
Select
3 ordem,
'C' tipo,
'Valor de Adicional de Deslocamento',
count(*) quantidade,
nvl(sum(t6.VLR_ADICIONAL_DESLOC),0) valor
from
ARADMIN.SAS_OS t6
where
t6.REGISTRO_DO_ATENDIMENTO >= $P!{DATA_INICIAL}and
t6.REGISTRO_DO_ATENDIMENTO <= $P!{DATA_FINAL} and
t6.CODCRED_ = '$P!{CRED_ID}' and
t6.STATUS in (3,4) and
t6.VLR_ADICIONAL_DESLOC > 0
) where quantidade>0
)
order by ordem
SQL do programa alterado:
select * from(
/*Acordos*/
select 4 ordem,'C' tipo,nvl('Acordo ' || t.codigo_do_acordo || '-' || t.descricao_do_acordo ,'Acordos') descricao,count(*)quantidade,nvl(sum(t.valor_do_acordo),0)valor
from ARADMIN.SAS_Acordos t where t.status = 0 /*Ativo*/ and t.data_inicial between $P!{DATA_INICIAL} and
$P!{DATA_FINAL} and tipo_do_acordo=0 /*FIXO*/ and t.codigo_da_credenciada = '$P!{CRED_ID}' group by
nvl('Acordo ' || t.codigo_do_acordo || '-' || t.descricao_do_acordo ,'Acordos')
union all
/*Multas*/
select 5 ordem,'D' tipo,'Multas',count(*)quantidade,nvl(sum(t2.valor_de_debito),0)valor
from ARADMIN.SAS_Multas t2 where t2.status = 0 and /*Procede*/
t2.registro_da_multa between $P!{DATA_INICIAL} and $P!{DATA_FINAL} and
t2.codcred_='$P!{CRED_ID}'
union all
/*Divergencias*/
select 6 ordem,'C' tipo,'Divergências', count(*)quantidade, nvl(sum(t3.saldo_final),0) valor
from ARADMIN.SAS_Divergencias t3 where t3.codcred_ = '$P!{CRED_ID}' and
t3.registro_da_analise between $P!{DATA_INICIAL} and $P!{DATA_FINAL} and
t3.status=1 /*Analisada*/
union all
/*Valor Pagamento*/
Select 1 ordem,'C' tipo,'Valor de Pagamento de Serviço',count(*) quantidade, NVL(sum(t4.VALOR_A_PAGAR),0) valor
from ARADMIN.SAS_OS t4 where t4.REGISTRO_DO_ATENDIMENTO >= $P!{DATA_INICIAL} and
t4.REGISTRO_DO_ATENDIMENTO <= $P!{DATA_FINAL} and t4.CODCRED_ = '$P!{CRED_ID}' and
t4.STATUS in (3,4) and t4.VALOR_A_PAGAR>0
union all
/* Valor Deslocamento*/
Select 2 ordem,'C' tipo,'Valor de Pagamento de Deslocamento', count(*) quantidade,
nvl(sum(t5.VALOR_DESLOCAMENTO),0) valor
from ARADMIN.SAS_OS t5 where t5.REGISTRO_DO_ATENDIMENTO >= $P!{DATA_INICIAL} and
t5.REGISTRO_DO_ATENDIMENTO <= $P!{DATA_FINAL} and t5.CODCRED_ = '$P!{CRED_ID}' and
t5.STATUS in (3,4) and t5.VALOR_DESLOCAMENTO > 0
union all
/* Valor Adicional Deslocamento*/
select * from(
Select
3 ordem,
'C' tipo,
'Valor de Adicional de Deslocamento',
count(*) quantidade,
nvl(sum(t6.VLR_ADICIONAL_DESLOC),0) valor
from
ARADMIN.SAS_OS t6
where
t6.REGISTRO_DO_ATENDIMENTO >= $P!{DATA_INICIAL}and
t6.REGISTRO_DO_ATENDIMENTO <= $P!{DATA_FINAL} and
t6.CODCRED_ = '$P!{CRED_ID}' and
t6.STATUS in (3,4) and
t6.VLR_ADICIONAL_DESLOC > 0
) where quantidade>0
)
order by ordem

