Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #98885
    SamantaS
    Participante

      Boa tarde, pessoal. Estou tentando criar uma query que pega os funcionários que tem dependentes de IR acima de 21anos. Já caçei pacas e não achei uma query que desse certo para fazer esse calculo.Alguém pode me ajudar?
      Bjos e obrigada

      #98886
      burga
      Participante

        Bom, como você não colocou nenhuma informação do seu ambiente, vou supor que você vai se basear em algum campo de data de nascimento, do tipo DATE.

        Pra isso você pode calcular da segunte forma:

        SELECT *
        FROM SUA_TABELA_DEPENDENTES_IR
        MONTHS_BETWEEN(SYSDATE,DATA_NASCIMENTO)/12 >= 21;

        A função months_between retorna o numero de meses entre duas datas… dividindo por 12, você tem a diferença em anos

        #98887
        SamantaS
        Participante

          [quote=”burga”:177fcg3s]Bom, como você não colocou nenhuma informação do seu ambiente, vou supor que você vai se basear em algum campo de data de nascimento, do tipo DATE.

          Pra isso você pode calcular da segunte forma:

          SELECT *
          FROM SUA_TABELA_DEPENDENTES_IR
          MONTHS_BETWEEN(SYSDATE,DATA_NASCIMENTO)/12 >= 21;

          A função months_between retorna o numero de meses entre duas datas… dividindo por 12, você tem a diferença em anos[/quote]

          Tentei fazer, mas continua dando erro.
          Está dizendo que ha caracteres inválidos.
          minha query ficou assim.

          SELECT DISTINCT F.CHAPA,
          F.NOME,
          D.NOME AS DEPENDENTE,
          MONTHS_BETWEEN(SYSDATE,D.DTNASCIMENTO)/12

          FROM PFUNC F

          JOIN PFDEPEND D
          ON F.CODCOLIGADA = D.CODCOLIGADA
          AND F.CHAPA = D.CHAPA

          WHERE F.CODCOLIGADA = :PLN_$B$1_N
          AND D.DTNASCIMENTO >= 21;
          AND D.INCIRRF = '1'

          Tb tentei colocar o MONTHS_BETWEEN no WHERE, mas tb naum deu certo…

          #98888
          burga
          Participante

            SELECT DISTINCT F.CHAPA,
            F.NOME,
            D.NOME AS DEPENDENTE,
            MONTHS_BETWEEN(SYSDATE,D.DTNASCIMENTO)/12

            FROM PFUNC F

            JOIN PFDEPEND D
            ON F.CODCOLIGADA = D.CODCOLIGADA
            AND F.CHAPA = D.CHAPA

            WHERE F.CODCOLIGADA = :PLN_$B$1_N
            MONTHS_BETWEEN(SYSDATE,D.DTNASCIMENTO)/12 >= 21
            AND D.INCIRRF = '1';

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.