Pular para o conteúdo
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #98562
    VINI85
    Participante

      Boa tarde Galera,

      Preciso de uma query que me traga as infomações em somente uma linha. Na query abaixo para cada mês acrecenta uma linha para o funcionario….preciso que saia conforme exemplo abaixo:

      João | 100,00 | 200,00

      Segue query
      SELECT F.NOME,
      FUN.NOME,
      FIN1.VALOR,
      null,

      FROM PFUNC F

      JOIN PFPERFF PER
      ON F.CODCOLIGADA = PER.CODCOLIGADA
      AND F.CHAPA = PER.CHAPA

      JOIN PFFINANC FIN1
      ON F.CODCOLIGADA = FIN1.CODCOLIGADA
      AND F.CHAPA = FIN1.CHAPA
      AND PER.MESCOMP = FIN1.MESCOMP
      AND PER.ANOCOMP = FIN1.ANOCOMP
      AND PER.NROPERIODO = FIN1.NROPERIODO
      AND FIN1.CODEVENTO IN(‘0730′)
      AND FIN1.MESCOMP = ’01’

      JOIN PFUNCAO FUN
      ON F.CODFUNCAO = FUN.CODIGO
      AND F.CODCOLIGADA = FUN.CODCOLIGADA

      WHERE F.CODCOLIGADA = ‘547’
      AND PER.ANOCOMP = ‘2011’
      AND PER.NROPERIODO = ‘2’

      UNION

      SELECT F.NOME,
      FUN.NOME,
      null,
      FIN2.VALOR

      FROM PFUNC F

      JOIN PFPERFF PER
      ON F.CODCOLIGADA = PER.CODCOLIGADA
      AND F.CHAPA = PER.CHAPA

      JOIN PFFINANC FIN2
      ON F.CODCOLIGADA = FIN2.CODCOLIGADA
      AND F.CHAPA = FIN2.CHAPA
      AND PER.MESCOMP = FIN2.MESCOMP
      AND PER.ANOCOMP = FIN2.ANOCOMP
      AND PER.NROPERIODO = FIN2.NROPERIODO
      AND FIN2.CODEVENTO IN(‘0730′)
      AND FIN2.MESCOMP = ’02’

      JOIN PFUNCAO FUN
      ON F.CODFUNCAO = FUN.CODIGO
      AND F.CODCOLIGADA = FUN.CODCOLIGADA

      WHERE F.CODCOLIGADA = ‘547’
      AND PER.ANOCOMP = ‘2011’
      AND PER.NROPERIODO = ‘2’

      #98566
      burga
      Participante

        Oi Vini,

        Podemos sumir com esse UNION, conforme a consulta abaixo… O resto, se eu entendi bem o que você está querendo, é só usar um group by.

        SELECT F.NOME,
        FUN.NOME,
        SUM(DECODE(FIN.MESCOMP,'01',FIN.VALOR,0)),
        SUM(DECODE(FIN.MESCOMP,'02',FIN.VALOR,0))
        FROM PFUNC F
        JOIN PFPERFF PER
        ON F.CODCOLIGADA = PER.CODCOLIGADA
        AND F.CHAPA = PER.CHAPA
        JOIN PFFINANC FIN
        ON F.CODCOLIGADA = FIN.CODCOLIGADA
        AND F.CHAPA = FIN.CHAPA
        AND PER.MESCOMP = FIN.MESCOMP
        AND PER.ANOCOMP = FIN.ANOCOMP
        AND PER.NROPERIODO = FIN.NROPERIODO
        AND FIN.CODEVENTO IN('0730')
        AND FIN.MESCOMP IN ('01','02')
        JOIN PFUNCAO FUN
        ON F.CODFUNCAO = FUN.CODIGO
        AND F.CODCOLIGADA = FUN.CODCOLIGADA
        WHERE F.CODCOLIGADA = '547'
        AND PER.ANOCOMP = '2011'
        AND PER.NROPERIODO = '2'
        GROUP BY F.NOME, FUN.NOME;

        Se o código ainda não estiver 100%, pelo menos você já tem um ponto de partida…

        Abraços

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