SELECT PARA CALCULAR JUROS DIAS CORRIDOS
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
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
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.
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.
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