none
Somando com Case RRS feed

  • Pergunta

  • Boa tarde a todos, preciso fazer uma soma de alguns campos porem a maioria deles esta dentro do case..vejam a sentença..

    SELECT PF1.NOME                               AS 'FUNCAO',
          P.SALARIO                               AS 'SALARIO MES',
           PER.MESCOMP                            AS 'MES PAG',
           PER.ANOCOMP                            AS 'ANO PAG',
           P.JORNADAMENSAL/60                     AS 'JORNADA MENSAL',
            SUM((CASE WHEN PF2.CODEVENTO = '0010' THEN PF2.REF   ELSE   0 END)) AS 'INSALUBRIDADE',
            SUM((CASE WHEN PF2.CODEVENTO = '0088' THEN PF2.REF   ELSE   0 END)) AS 'ADICIONAL NOTURNO',                                                               
            SUM((CASE WHEN PF2.CODEVENTO = '0034' THEN PF2.VALOR ELSE   0 END)) AS 'D.S.R. HORAS EXTRAS',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 100%',
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 100%',
            CAST((P.SALARIO)/ (P.JORNADAMENSAL/60)  AS NUMERIC(10,2))  AS 'SALARIO POR HORA'
           
           FROM PFUNC AS P
    INNER JOIN PFUNCAO     AS PF1 ON PF1.CODCOLIGADA = P.CODCOLIGADA AND PF1.CODIGO = P.CODFUNCAO
    INNER JOIN PFPERFF     AS PER ON PER.CODCOLIGADA = P.CODCOLIGADA  AND PER.CHAPA = P.CHAPA
    INNER JOIN PFFINANC    AS PF2 ON PF2.CODCOLIGADA = PER.CODCOLIGADA AND PF2.CHAPA = PER.CHAPA
    AND PF2.ANOCOMP = PER.ANOCOMP AND PF2.MESCOMP = PER.MESCOMP AND PF2.NROPERIODO = PER.NROPERIODO
    WHERE P.CODSITUACAO = 'A' AND PER.MESCOMP =  '8'   AND PER.ANOCOMP = '2009' AND  PF2.CODEVENTO IN ('0001','0010','0034','0088','0040','0041')
    GROUP BY PF1.NOME,PER.BASEINSS, P.JORNADAMENSAL/60,PER.MESCOMP,PER.ANOCOMP,P.SALARIO
    ORDER BY PF1.NOME

    Eu preciso somar as seguinte informaçoes
    P.SALARIO + Os SUM, dos cases...

    Muito Obrigado a todos
    segunda-feira, 14 de setembro de 2009 17:29

Respostas

  • Boa Tarde,

    Eu sugiro que você use uma CTE se estiver com o SQL Server 2005 ou superior. No caso do 2000, uma subquery do tipo Derived Table seria suficiente. Ex:

    -- Uso da CTE
    ;WITH RES AS (
    SELECT PF1.NOME                               AS 'FUNCAO',
          P.SALARIO                               AS 'SALARIO MES',
           PER.MESCOMP                            AS 'MES PAG',
           PER.ANOCOMP                            AS 'ANO PAG',
           P.JORNADAMENSAL/60                     AS 'JORNADA MENSAL',
            SUM((CASE WHEN PF2.CODEVENTO = '0010' THEN PF2.REF   ELSE   0 END)) AS 'INSALUBRIDADE',
            SUM((CASE WHEN PF2.CODEVENTO = '0088' THEN PF2.REF   ELSE   0 END)) AS 'ADICIONAL NOTURNO',                                                                
            SUM((CASE WHEN PF2.CODEVENTO = '0034' THEN PF2.VALOR ELSE   0 END)) AS 'D.S.R. HORAS EXTRAS',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 100%', 
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 100%',
            CAST((P.SALARIO)/ (P.JORNADAMENSAL/60)  AS NUMERIC(10,2))  AS 'SALARIO POR HORA'
            
           FROM PFUNC AS P 
    INNER JOIN PFUNCAO     AS PF1 ON PF1.CODCOLIGADA = P.CODCOLIGADA AND PF1.CODIGO = P.CODFUNCAO
    INNER JOIN PFPERFF     AS PER ON PER.CODCOLIGADA = P.CODCOLIGADA  AND PER.CHAPA = P.CHAPA
    INNER JOIN PFFINANC    AS PF2 ON PF2.CODCOLIGADA = PER.CODCOLIGADA AND PF2.CHAPA = PER.CHAPA
    AND PF2.ANOCOMP = PER.ANOCOMP AND PF2.MESCOMP = PER.MESCOMP AND PF2.NROPERIODO = PER.NROPERIODO 
    WHERE P.CODSITUACAO = 'A' AND PER.MESCOMP =  '8'   AND PER.ANOCOMP = '2009' AND  PF2.CODEVENTO IN ('0001','0010','0034','0088','0040','0041')
    GROUP BY PF1.NOME,PER.BASEINSS, P.JORNADAMENSAL/60,PER.MESCOMP,PER.ANOCOMP,P.SALARIO)
    SELECT SALARIO + <Campos> FROM RES
    ORDER BY FUNCAO
    -- Uso da Derived Table SELECT SALARIO + <Campos> FROM ( SELECT PF1.NOME AS 'FUNCAO', P.SALARIO AS 'SALARIO MES', PER.MESCOMP AS 'MES PAG', PER.ANOCOMP AS 'ANO PAG', P.JORNADAMENSAL/60 AS 'JORNADA MENSAL', SUM((CASE WHEN PF2.CODEVENTO = '0010' THEN PF2.REF ELSE 0 END)) AS 'INSALUBRIDADE', SUM((CASE WHEN PF2.CODEVENTO = '0088' THEN PF2.REF ELSE 0 END)) AS 'ADICIONAL NOTURNO', SUM((CASE WHEN PF2.CODEVENTO = '0034' THEN PF2.VALOR ELSE 0 END)) AS 'D.S.R. HORAS EXTRAS', SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN PF2.REF ELSE 0 END)) AS 'QTD HORA 50%', SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 50%', SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN PF2.REF ELSE 0 END)) AS 'QTD HORA 100%', SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 100%', CAST((P.SALARIO)/ (P.JORNADAMENSAL/60) AS NUMERIC(10,2)) AS 'SALARIO POR HORA' FROM PFUNC AS P INNER JOIN PFUNCAO AS PF1 ON PF1.CODCOLIGADA = P.CODCOLIGADA AND PF1.CODIGO = P.CODFUNCAO INNER JOIN PFPERFF AS PER ON PER.CODCOLIGADA = P.CODCOLIGADA AND PER.CHAPA = P.CHAPA INNER JOIN PFFINANC AS PF2 ON PF2.CODCOLIGADA = PER.CODCOLIGADA AND PF2.CHAPA = PER.CHAPA AND PF2.ANOCOMP = PER.ANOCOMP AND PF2.MESCOMP = PER.MESCOMP AND PF2.NROPERIODO = PER.NROPERIODO WHERE P.CODSITUACAO = 'A' AND PER.MESCOMP = '8' AND PER.ANOCOMP = '2009' AND PF2.CODEVENTO IN ('0001','0010','0034','0088','0040','0041') GROUP BY PF1.NOME,PER.BASEINSS, P.JORNADAMENSAL/60,PER.MESCOMP,PER.ANOCOMP,P.SALARIO) AS Q ORDER BY FUNCAO



    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A armadilha do Backup Diferencial – O que fazer para evitá-la ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!719.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 14 de setembro de 2009 18:23
    • Marcado como Resposta Ronnie Von terça-feira, 15 de setembro de 2009 11:25
    segunda-feira, 14 de setembro de 2009 18:22

Todas as Respostas

  • Boa tarde Ronnie, vc poderia criar uma tabela Derivada





    Select FUNCAO,sum([insalubridade]+[Adicional noturno]+(D.S.R]....) AS SOMA) FROM
    (
    SELECT PF1.NOME                               AS 'FUNCAO',
          P.SALARIO                               AS 'SALARIO MES',
           PER.MESCOMP                            AS 'MES PAG',
           PER.ANOCOMP                            AS 'ANO PAG',
           P.JORNADAMENSAL/60                     AS 'JORNADA MENSAL',
            SUM((CASE WHEN PF2.CODEVENTO = '0010' THEN PF2.REF   ELSE   0 END)) AS 'INSALUBRIDADE',
            SUM((CASE WHEN PF2.CODEVENTO = '0088' THEN PF2.REF   ELSE   0 END)) AS 'ADICIONAL NOTURNO',                                                               
            SUM((CASE WHEN PF2.CODEVENTO = '0034' THEN PF2.VALOR ELSE   0 END)) AS 'D.S.R. HORAS EXTRAS',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 100%',
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 100%',
            CAST((P.SALARIO)/ (P.JORNADAMENSAL/60)  AS NUMERIC(10,2))  AS 'SALARIO POR HORA'
           
           FROM PFUNC AS P
    INNER JOIN PFUNCAO     AS PF1 ON PF1.CODCOLIGADA = P.CODCOLIGADA AND PF1.CODIGO = P.CODFUNCAO
    INNER JOIN PFPERFF     AS PER ON PER.CODCOLIGADA = P.CODCOLIGADA  AND PER.CHAPA = P.CHAPA
    INNER JOIN PFFINANC    AS PF2 ON PF2.CODCOLIGADA = PER.CODCOLIGADA AND PF2.CHAPA = PER.CHAPA
    AND PF2.ANOCOMP = PER.ANOCOMP AND PF2.MESCOMP = PER.MESCOMP AND PF2.NROPERIODO = PER.NROPERIODO
    WHERE P.CODSITUACAO = 'A' AND PER.MESCOMP =  '8'   AND PER.ANOCOMP = '2009' AND  PF2.CODEVENTO IN ('0001','0010','0034','0088','0040','0041')
    GROUP BY PF1.NOME
    ) AS PRINCIPAL






    Espero ter ajudado


    Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa
    • Marcado como Resposta Ronnie Von terça-feira, 15 de setembro de 2009 11:25
    • Não Marcado como Resposta Ronnie Von terça-feira, 15 de setembro de 2009 11:25
    segunda-feira, 14 de setembro de 2009 18:20
  • Boa Tarde,

    Eu sugiro que você use uma CTE se estiver com o SQL Server 2005 ou superior. No caso do 2000, uma subquery do tipo Derived Table seria suficiente. Ex:

    -- Uso da CTE
    ;WITH RES AS (
    SELECT PF1.NOME                               AS 'FUNCAO',
          P.SALARIO                               AS 'SALARIO MES',
           PER.MESCOMP                            AS 'MES PAG',
           PER.ANOCOMP                            AS 'ANO PAG',
           P.JORNADAMENSAL/60                     AS 'JORNADA MENSAL',
            SUM((CASE WHEN PF2.CODEVENTO = '0010' THEN PF2.REF   ELSE   0 END)) AS 'INSALUBRIDADE',
            SUM((CASE WHEN PF2.CODEVENTO = '0088' THEN PF2.REF   ELSE   0 END)) AS 'ADICIONAL NOTURNO',                                                                
            SUM((CASE WHEN PF2.CODEVENTO = '0034' THEN PF2.VALOR ELSE   0 END)) AS 'D.S.R. HORAS EXTRAS',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 100%', 
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 100%',
            CAST((P.SALARIO)/ (P.JORNADAMENSAL/60)  AS NUMERIC(10,2))  AS 'SALARIO POR HORA'
            
           FROM PFUNC AS P 
    INNER JOIN PFUNCAO     AS PF1 ON PF1.CODCOLIGADA = P.CODCOLIGADA AND PF1.CODIGO = P.CODFUNCAO
    INNER JOIN PFPERFF     AS PER ON PER.CODCOLIGADA = P.CODCOLIGADA  AND PER.CHAPA = P.CHAPA
    INNER JOIN PFFINANC    AS PF2 ON PF2.CODCOLIGADA = PER.CODCOLIGADA AND PF2.CHAPA = PER.CHAPA
    AND PF2.ANOCOMP = PER.ANOCOMP AND PF2.MESCOMP = PER.MESCOMP AND PF2.NROPERIODO = PER.NROPERIODO 
    WHERE P.CODSITUACAO = 'A' AND PER.MESCOMP =  '8'   AND PER.ANOCOMP = '2009' AND  PF2.CODEVENTO IN ('0001','0010','0034','0088','0040','0041')
    GROUP BY PF1.NOME,PER.BASEINSS, P.JORNADAMENSAL/60,PER.MESCOMP,PER.ANOCOMP,P.SALARIO)
    SELECT SALARIO + <Campos> FROM RES
    ORDER BY FUNCAO
    -- Uso da Derived Table SELECT SALARIO + <Campos> FROM ( SELECT PF1.NOME AS 'FUNCAO', P.SALARIO AS 'SALARIO MES', PER.MESCOMP AS 'MES PAG', PER.ANOCOMP AS 'ANO PAG', P.JORNADAMENSAL/60 AS 'JORNADA MENSAL', SUM((CASE WHEN PF2.CODEVENTO = '0010' THEN PF2.REF ELSE 0 END)) AS 'INSALUBRIDADE', SUM((CASE WHEN PF2.CODEVENTO = '0088' THEN PF2.REF ELSE 0 END)) AS 'ADICIONAL NOTURNO', SUM((CASE WHEN PF2.CODEVENTO = '0034' THEN PF2.VALOR ELSE 0 END)) AS 'D.S.R. HORAS EXTRAS', SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN PF2.REF ELSE 0 END)) AS 'QTD HORA 50%', SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 50%', SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN PF2.REF ELSE 0 END)) AS 'QTD HORA 100%', SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 100%', CAST((P.SALARIO)/ (P.JORNADAMENSAL/60) AS NUMERIC(10,2)) AS 'SALARIO POR HORA' FROM PFUNC AS P INNER JOIN PFUNCAO AS PF1 ON PF1.CODCOLIGADA = P.CODCOLIGADA AND PF1.CODIGO = P.CODFUNCAO INNER JOIN PFPERFF AS PER ON PER.CODCOLIGADA = P.CODCOLIGADA AND PER.CHAPA = P.CHAPA INNER JOIN PFFINANC AS PF2 ON PF2.CODCOLIGADA = PER.CODCOLIGADA AND PF2.CHAPA = PER.CHAPA AND PF2.ANOCOMP = PER.ANOCOMP AND PF2.MESCOMP = PER.MESCOMP AND PF2.NROPERIODO = PER.NROPERIODO WHERE P.CODSITUACAO = 'A' AND PER.MESCOMP = '8' AND PER.ANOCOMP = '2009' AND PF2.CODEVENTO IN ('0001','0010','0034','0088','0040','0041') GROUP BY PF1.NOME,PER.BASEINSS, P.JORNADAMENSAL/60,PER.MESCOMP,PER.ANOCOMP,P.SALARIO) AS Q ORDER BY FUNCAO



    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A armadilha do Backup Diferencial – O que fazer para evitá-la ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!719.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 14 de setembro de 2009 18:23
    • Marcado como Resposta Ronnie Von terça-feira, 15 de setembro de 2009 11:25
    segunda-feira, 14 de setembro de 2009 18:22
  • Boa tarde, gustavo tentei fazer usando seu exemplo, porem em retonou uma mensagem de erro..
    Mensagem

    Msg 207, Level 16, State 1, Line 23
    Invalid column name 'SALARIO'.

    SQL
    ;WITH RES AS (
    SELECT PF1.NOME                               AS 'FUNCAO',
          P.SALARIO                               AS 'SALARIO MES',
           PER.MESCOMP                            AS 'MES PAG',
           PER.ANOCOMP                            AS 'ANO PAG',
           P.JORNADAMENSAL/60                     AS 'JORNADA MENSAL',
            SUM((CASE WHEN PF2.CODEVENTO = '0010' THEN PF2.REF   ELSE   0 END)) AS 'INSALUBRIDADE',
            SUM((CASE WHEN PF2.CODEVENTO = '0088' THEN PF2.REF   ELSE   0 END)) AS 'ADICIONAL NOTURNO',                                                               
            SUM((CASE WHEN PF2.CODEVENTO = '0034' THEN PF2.VALOR ELSE   0 END)) AS 'D.S.R. HORAS EXTRAS',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 50%',
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN PF2.REF   ELSE   0 END)) AS 'QTD HORA 100%',
            SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR HORA 100%',
            CAST((P.SALARIO)/ (P.JORNADAMENSAL/60)  AS NUMERIC(10,2))  AS 'SALARIO POR HORA'
           
           FROM PFUNC AS P
    INNER JOIN PFUNCAO     AS PF1 ON PF1.CODCOLIGADA = P.CODCOLIGADA AND PF1.CODIGO = P.CODFUNCAO
    INNER JOIN PFPERFF     AS PER ON PER.CODCOLIGADA = P.CODCOLIGADA  AND PER.CHAPA = P.CHAPA
    INNER JOIN PFFINANC    AS PF2 ON PF2.CODCOLIGADA = PER.CODCOLIGADA AND PF2.CHAPA = PER.CHAPA
    AND PF2.ANOCOMP = PER.ANOCOMP AND PF2.MESCOMP = PER.MESCOMP AND PF2.NROPERIODO = PER.NROPERIODO
    WHERE P.CODSITUACAO = 'A' AND PER.MESCOMP =  '8'   AND PER.ANOCOMP = '2009' AND  PF2.CODEVENTO IN ('0001','0010','0034','0088','0040','0041')
    GROUP BY PF1.NOME,PER.BASEINSS, P.JORNADAMENSAL/60,PER.MESCOMP,PER.ANOCOMP,P.SALARIO)
    SELECT SALARIO + INSALUBRIDADE FROM RES
    ORDER BY FUNCAO --<br/>

    Agradeço a todos pela ajuda..

    segunda-feira, 14 de setembro de 2009 19:46
  • O seu campo vc renomeou para [SALARIO MES] , este é o erro.


    Abraço
    Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa
    segunda-feira, 14 de setembro de 2009 20:08
  • Obrigado a todos,valeu Gustavo
    Anderson tentei usar seu exemplo mas nao consegui..Obrigado tambem


    Sentença

    SELECT FUNCAO,
           SALARIO,
           MES_PAG,
           ANO_PAG,
           JORNADA_MENSAL,
           INSALUBRIDADE,
           ADICIONAL_NOTURNO,
           DSR_HORAS_EXTRAS,
           QTD_HORA_50,
           VLR_HORA_50,
           QTD_HORA_100,
           VLR_HORA_100,
           SALARIO_POR_HORA,
           SALARIO + INSALUBRIDADE + ADICIONAL_NOTURNO + DSR_HORAS_EXTRAS + VLR_HORA_50 +  VLR_HORA_100  AS 'SALARIO_MES'  FROM (
    SELECT PF1.NOME                               AS 'FUNCAO',
          P.SALARIO                               AS 'SALARIO',
           PER.MESCOMP                            AS 'MES_PAG',
           PER.ANOCOMP                            AS 'ANO_PAG',
           P.JORNADAMENSAL/60                     AS 'JORNADA_MENSAL',
           SUM((CASE WHEN PF2.CODEVENTO = '0010' THEN PF2.REF   ELSE   0 END)) AS 'INSALUBRIDADE',
           SUM((CASE WHEN PF2.CODEVENTO = '0088' THEN PF2.REF   ELSE   0 END)) AS 'ADICIONAL_NOTURNO',                                                               
           SUM((CASE WHEN PF2.CODEVENTO = '0034' THEN PF2.VALOR ELSE   0 END)) AS 'DSR_HORAS_EXTRAS',
           SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN PF2.REF   ELSE   0 END)) AS 'QTD_HORA_50',
           SUM((CASE WHEN PF2.CODEVENTO = '0040' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR_HORA_50',
           SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN PF2.REF   ELSE   0 END)) AS 'QTD_HORA_100',
           SUM((CASE WHEN PF2.CODEVENTO = '0041' THEN ISNULL (PF2.VALOR,0) ELSE 0 END)) AS 'VLR_HORA_100',
           CAST((P.SALARIO)/ (P.JORNADAMENSAL/60)  AS NUMERIC(10,2))  AS 'SALARIO_POR_HORA'
           FROM PFUNC AS P
    INNER JOIN PFUNCAO     AS PF1 ON PF1.CODCOLIGADA = P.CODCOLIGADA AND PF1.CODIGO = P.CODFUNCAO
    INNER JOIN PFPERFF     AS PER ON PER.CODCOLIGADA = P.CODCOLIGADA  AND PER.CHAPA = P.CHAPA
    INNER JOIN PFFINANC    AS PF2 ON PF2.CODCOLIGADA = PER.CODCOLIGADA AND PF2.CHAPA = PER.CHAPA
    AND PF2.ANOCOMP = PER.ANOCOMP AND PF2.MESCOMP = PER.MESCOMP AND PF2.NROPERIODO = PER.NROPERIODO
    WHERE P.CODSITUACAO = 'A' AND PER.MESCOMP =  '8'   AND PER.ANOCOMP = '2009' AND  PF2.CODEVENTO IN ('0001','0010','0034','0088','0040','0041')
    GROUP BY PF1.NOME,PER.BASEINSS, P.JORNADAMENSAL/60,PER.MESCOMP,PER.ANOCOMP,P.SALARIO) AS Q
    ORDER BY FUNCAO

    Se algo estiver errado fiquem a vontade para comentar....



    terça-feira, 15 de setembro de 2009 11:27