Verificar contagem de meses dentro de um período

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
rhicky
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 58
Registrado em: Sex, 20 Jul 2007 9:48 am
Localização: S. J. do Rio Preto/SP
Rhicky

Amigos,
A consulta SQL abaixo traz um resultado. Porém, eu preciso que ela retorne a contagem de meses conforme explicado na imagem. O que fazer?

Selecionar tudo

SELECT vw.*, sum(meses) over (partition by CODCOLIGADA) TOTA_MESES
FROM (

SELECT h.CODCOLIGADA,

    ( F.CHAPA||' - '||F.NOME )    AS FUNCIONARIO
  , ( FN.CODIGO||' - '||FN.NOME ) AS FUNCAO
  ,   FC.GRUPOCARGOS              AS GRUPOCARGOS
  ,   FC.TARGET                   AS TARGET
  ,   H.DTMUDANCA                 AS INICIO
  ,   LEAD(TO_CHAR(H.DTMUDANCA, 'DD/MM/YYYY') , 1, 'Atual') OVER(ORDER BY H.DTMUDANCA) AS FIM  
  ,   FLOOR(MONTHS_BETWEEN(LEAD(H.DTMUDANCA, 1, SYSDATE) OVER(ORDER BY H.DTMUDANCA), H.DTMUDANCA))  AS MESES

FROM PFUNC F

INNER JOIN PFHSTFCO H
  ON  H.CODCOLIGADA = F.CODCOLIGADA
  AND H.CHAPA       = F.CHAPA
  
INNER JOIN PFUNCAO FN
  ON  FN.CODCOLIGADA  = H.CODCOLIGADA
  AND FN.CODIGO       = H.CODFUNCAO

INNER JOIN PFUNCAOCOMPL FC
  ON  FC.CODCOLIGADA  = H.CODCOLIGADA
  AND FC.CODFUNCAO    = H.CODFUNCAO 


WHERE F.CODCOLIGADA = x
AND   H.CHAPA       = 'nnnnnn'

  
ORDER BY H.DTMUDANCA ASC) vw
Anexos
consulta.jpg
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 33 visitantes