SELECT PARA CALCULAR JUROS DIAS CORRIDOS

WILSONJOSE 02/10/2012 22:39:26
#411094
Olá pessoal alguém poderia me ajudar quanto ao select abaixo, quero calcular juros - dias corridos em uma query só que está calculando juros a mais.

Exemplo: se eu pegar um valor de R$ 22.07 com juros de 0.2 ao dia/100 vou ter R$ 0.04 por dia, tenho uma carência de 5 dias após o vencimento. Calculando o vencimento a partir de 24/07/12 com carência de 5 dias vou ter 65 dias de atraso. 65 * 0.04 = 2,60 + 22,07= 24,67, na query abaixo está calculando 2,94

StrSql = StrSql & [Ô]case when datediff(curdate(),parrec + card) > 0 then [Ô]
StrSql = StrSql & [Ô]parreceber + ((parreceber * taxad/100) * datediff(curdate(),parrec + card)) else parreceber end as TotalJuros [Ô]

meu banco mysql
taxad = tipo float
card = é o número de dias de carência , tipo integer( como converter para tipo data), deve estar aqui o problema, coloquei cdate(card) mas da erro.
parrec = tipo data
parreceber = valor da parcela, tipo float

desde já agradeço
MARCELO.TREZE 03/10/2012 06:40:29
#411125
Resposta escolhida
o problema que vi é o seguinte

veja

R$ 22.07 com juros de 0.2 ao dia/[txt-color=#e80000]100[/txt-color] vou ter R$ 0.04 por dia

Se você realmente dividir por 100 não será 0,04 (o valor exato é 0,04414) será 0,04414/100 = 0,0004414

o que dará esta diferença absurda. solução retire apenas o 100 desta conta ((parreceber * taxad[txt-color=#e80000]/100[/txt-color])

e o calculo será o certo.

WILSONJOSE 03/10/2012 17:09:02
#411187
Marcelo, é o seguinte 0,04 é o resultadado de parreceber * taxad/100 onde TAXAD é um capo em uma determinada tabela do sistema que defini como 0,20 de juros dia). Fiiz teste de tirar o /100 mas da um valor absurdo na parcela. Você ou alguém teria outra idéia? gostaria que o resultado fosse executado através de uma query.
Tópico encerrado , respostas não são mais permitidas