none
totalização do valor de cada mês por codfunc pois tem varios funcionarios RRS feed

  • Pergunta

  • SELECT DISTINCT  CODFUNC, CODEVENTO,VLRMARCO,VLRABRIL,VLRMAIO, SUM(VLRMARCO+VLRABRIL+VLRMAIO) AS "TOTAL NO ANO" 
      FROM TFPACU 
    WHERE CODEMP = 44 
    AND CODFUNC IN (1,2,3)
    AND CODEVENTO IN (1,50,90)
    GROUP BY CODFUNC, CODEVENTO,VLRMARCO,VLRABRIL,VLRMAIO

    ________________________________________________________

    codfunc| codevento| vlrmarco | vlrabril | vlrmaio | total do ano |

    1          | 1               | 2            |      2    | 2          |          6          |

    1          | 2               | 3            |            | 2          |                      |

    1          | 1               | 5            |      5    |             |                      |

    1          | 2               | 3            |       5    | 2          |        7           |

    ________________________________________________________

    preciso criar uma linha e totalizar por codfunc, e também trazer os valores e não totalizou no total do ano.

    desde já obrigado.

    sexta-feira, 30 de janeiro de 2015 11:28

Respostas

  • Bom dia,

    Para obter o total por codfunc experimente utilizar Grouping Sets.

    Sobre o total do ano, se é possível que alguma coluna de valor contenha null então experimente utilizar a função Coalesce

    SELECT 
        CODFUNC, 
        CODEVENTO,
        SUM(VLRMARCO) AS VLRMARCO,
        SUM(VLRABRIL) AS VLRABRIL,
        SUM(VLRMAIO) AS VLRMAIO, 
        SUM(COALESCE(VLRMARCO, 0) + COALESCE(VLRABRIL, 0) + COALESCE(VLRMAIO, 0)) AS "TOTAL NO ANO" 
    FROM TFPACU 
    WHERE 
        CODEMP = 44 AND 
        CODFUNC IN (1, 2, 3) AND 
        CODEVENTO IN (1, 50, 90)
    GROUP BY GROUPING SETS
        ((CODFUNC, CODEVENTO, VLRMARCO, VLRABRIL, VLRMAIO), (CODFUNC))
    

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    sexta-feira, 30 de janeiro de 2015 12:01

Todas as Respostas

  • Bom dia,

    Para obter o total por codfunc experimente utilizar Grouping Sets.

    Sobre o total do ano, se é possível que alguma coluna de valor contenha null então experimente utilizar a função Coalesce

    SELECT 
        CODFUNC, 
        CODEVENTO,
        SUM(VLRMARCO) AS VLRMARCO,
        SUM(VLRABRIL) AS VLRABRIL,
        SUM(VLRMAIO) AS VLRMAIO, 
        SUM(COALESCE(VLRMARCO, 0) + COALESCE(VLRABRIL, 0) + COALESCE(VLRMAIO, 0)) AS "TOTAL NO ANO" 
    FROM TFPACU 
    WHERE 
        CODEMP = 44 AND 
        CODFUNC IN (1, 2, 3) AND 
        CODEVENTO IN (1, 50, 90)
    GROUP BY GROUPING SETS
        ((CODFUNC, CODEVENTO, VLRMARCO, VLRABRIL, VLRMAIO), (CODFUNC))
    

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    sexta-feira, 30 de janeiro de 2015 12:01
  • valeu muito obrigado
    sexta-feira, 30 de janeiro de 2015 13:08