Jump to content

geovani.cristofolini

Members
  • Content count

    7
  • Joined

  • Last visited

Community Reputation

0 Comum

About geovani.cristofolini

Informações Pessoais

  • Sexo
    Masculino

Contato

  1. geovani.cristofolini

    Criar função para cálculo de juros compostos

    Ótimo, deu certo! obrigado! select 10000 * EXP(SUM(LOG(1 + (1 * (percentual/100))))) from tab_indice where sigla = 'INPC' and data between 20190901 and 20191101
  2. geovani.cristofolini

    Criar função para cálculo de juros compostos

    Olá pessoal, consegui implementar, segue o código que atendeu a minha necessidade. Criar tabela: create table tab_indice(sigla varchar(50), data date, percentual float); Inserir alguns registros: insert into tab_indice values('INPC',20190801,0.12); insert into tab_indice values('INPC',20190901,-0.05); insert into tab_indice values('INPC',20191001,0.04); insert into tab_indice values('INPC',20191101,0.54); insert into tab_indice values('INPC',20191201,1.22); Criar a função: CREATE FUNCTION calcIndice(pvalor float, pindice varchar(50), pdata_inicial date, pdata_final date) returns float begin DECLARE valor_reajustado, i, x float DEFAULT 0; DECLARE finished INTEGER DEFAULT 0; DECLARE curReajuste CURSOR FOR SELECT percentual from tab_indice where sigla = pindice and data between pdata_inicial and pdata_final; DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1; OPEN curReajuste; getIndice: LOOP FETCH curReajuste INTO i; IF finished = 1 THEN LEAVE getIndice; END IF; IF x = 0 then SET valor_reajustado = pvalor + (pvalor * (i/100)); else SET valor_reajustado = valor_reajustado + (valor_reajustado * (i/100)); end if; set x = x + 1; END LOOP getIndice; CLOSE curReajuste; return valor_reajustado; end; Chamar a função no select: SELECT calcIndice(10000,'INPC', 20190901, 20191101)
  3. geovani.cristofolini

    Criar função para cálculo de juros compostos

    Bom dia pessoal, Preciso fazer uma consulta SQL que aplica o cálculo de juros compostos (juros sobre juros). https://www.significados.com.br/juros-compostos/ Valor Inicial: R$ 1.000,00 Mês Juros Reajuste 01/08/2019 0,12% R$ 1.001,20 01/09/2019 -0,05% R$ 1.000,70 01/10/2019 0,04% R$ 1.001,10 01/11/2019 0,54% R$ 1.006,51 01/12/2019 1,22% R$ 1.018,78 Valor Reajuste: R$ 1.018,78 Creio que apenas usando select não seja possível, porque necessita de uma estrutura de repetição para aplicar o resultado do primeiro mês em outro mês e assim sucessivamente. Penso que devo fazer uma função, onde passaria como parâmetro, o valor inicial, data inicial e data final. Como não tenho conhecimento em desenvolvimento de função no mysql, gostaria de um exemplo, assim acredito que conseguido implementar. Preciso de um exemplo de função, que faz um loop girando em todos os registros da tabela de juros, filtrando os meses conforme data inicial e final, para cada registro, aplicaria o percentual de reajuste. No primeiro mês aplicaria o percentual em cima do valor inicial, nos proximos meses aplicaria o percentual em cima do reajuste anterior. Alguém já fez essa cálculo? Estou usando o MySQL versão 5.1.73.
  4. geovani.cristofolini

    IF dentro de um SELECT

    Bom dia, Segue um exemplo abaixo SELECT CASE WHEN A.CARGO = 'GERENTE' THEN A.SALARIO + A.ABONO ELSE A.SALARIO END AS TOTAL_SALARIO FROM TABELA_FUNCIONARIOS WHERE STATUS_FUNC = ATIVO Mais informações você pode consultar na documentação do oracle: http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm Abraço!
  5. geovani.cristofolini

    Dúvida GROUP BY com referencias trocadas

    Bom dia, Veja se assim funciona: SELECT ID, MATRICULA, HORA, CODIGO FROM ( SELECT ID, MATRICULA, HORA, CODIGO, RANK() OVER (PARTITION BY MATRICULA,HORA ORDER BY ID) POSICAO FROM TABELA ) WHERE POSICAO = 1
  6. geovani.cristofolini

    Passar mais de um valor para as variáveis de uma procedure.

    Boa noite, Assim não irá funcionar? CREATE OR REPLACE PROCEDURE PS_CCORRENTE_DELETA(LANC IN NUMBER) IS BEGIN DELETE FROM MVCCORRENTE WHERE '%,'||LANC||',%' like '%,'||RECNUM||',%' END PS_CCORRENTE_DELETA;
  7. geovani.cristofolini

    Passar mais de um valor para as variáveis de uma procedure.

    Bom dia, Dá uma olhada neste tópico. http://glufke.net/oracle/viewtopic.php?f=3&t=10123
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.