none
fazer Sum, nessa condiçoes RRS feed

  • Pergunta

  • Prezados bom dia, na SQL abaixo, me retorna um resultado esperado, porem eu preciso somar esses valores, vejam

    SELECT

    OF1

    .IDOBJOF AS 'EQ',

     

    CASE

    WHEN C.CODCCUSTO IS NOT NULL THEN C.CODCCUSTO

    ELSE

    BJ.CODCCUSTO END AS 'OBRA'

    ,

     

    CONVERT (INT,isnull(OF2.HORA1,0),1) AS 'HT',

     

    CONVERT (INT,ISNULL(OF2.HORA ,1),1) AS 'HD',

     

    CONVERT (INT,ISNULL(OF2.HORA2 ,1),1) AS 'HM',

     

    CONVERT (INT,ISNULL(OF2.HORA3 ,1),1) AS 'HO'

     

    FROM

    OFHISTINDICADOR AS OF1

     

    LEFT JOIN OFHISTINDICADORCOMPL AS OF2 ON

    OF2

    .IDHISTINDICADOR = OF1.IDHISTINDICADOR AND OF2.CODCOLIGADA = OF1.CODCOLIGADA

    AND

    OF2.IDOBJOF = OF1.IDOBJOF

    LEFT

    JOIN OFOBJOFICINA AS BJ ON BJ.CODCOLIGADA = OF1.CODCOLIGADA AND BJ.IDOBJOF = OF1.IDOBJOF

    LEFT

    JOIN OFOBJOFICINACCUSTO AS C ON C.CODCOLIGADA = OF1.CODCOLIGADA AND C.IDOBJOF = OF1.IDOBJOF

    AND

    OF1.DATACOLETA <= c.DATASAIDA

     

    WHERE

    OF1.IDOBJOF =

    'AC-02'

    AND

    OF1.DATACOLETA >= '2011-02-01' AND OF1.DATACOLETA <=

    '2011-02-28'

    Resultado

    AC-02      02.0099    4 5 0 0
    AC-02      02.0099    3 0 6 0
    AC-02      01.0002    0 0 9 0
    AC-02      01.0002    0 0 8 0
    AC-02      01.0002    0 0 9 0

    Resultado esperado..

    AC-02 01.0099     7 5 6 0 

    AC-02 01.0002     0 0 26 0

    Seria esse Resultado esperado.

    Obrigado a todos pela ajuda..

    quarta-feira, 13 de abril de 2011 12:30

Respostas

  • Ronnie, adicione a coluna a função nas colunas que deseja somar,

    SUM(CONVERT(INT,isnull(OF2.HORA1,0),1)) AS 'HT', 
    SUM(CONVERT(INT,ISNULL(OF2.HORA ,1),1)) AS 'HD', 
    SUM(CONVERT(INT,ISNULL(OF2.HORA2 ,1),1)) AS 'HM', 
    SUM(CONVERT(INT,ISNULL(OF2.HORA3 ,1),1)_ AS 'HO' 
    

    Depois do WHERE você inclui o group by

    GROUP BY OF1.IDOBJOF,  C.CODCCUSTO, BJ.CODCCUSTO

    Creio que assim deva funcionar, faça um teste.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Ronnie Von quarta-feira, 13 de abril de 2011 17:45
    quarta-feira, 13 de abril de 2011 13:37

Todas as Respostas

  • Ronnie, adicione a coluna a função nas colunas que deseja somar,

    SUM(CONVERT(INT,isnull(OF2.HORA1,0),1)) AS 'HT', 
    SUM(CONVERT(INT,ISNULL(OF2.HORA ,1),1)) AS 'HD', 
    SUM(CONVERT(INT,ISNULL(OF2.HORA2 ,1),1)) AS 'HM', 
    SUM(CONVERT(INT,ISNULL(OF2.HORA3 ,1),1)_ AS 'HO' 
    

    Depois do WHERE você inclui o group by

    GROUP BY OF1.IDOBJOF,  C.CODCCUSTO, BJ.CODCCUSTO

    Creio que assim deva funcionar, faça um teste.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Ronnie Von quarta-feira, 13 de abril de 2011 17:45
    quarta-feira, 13 de abril de 2011 13:37
  • Parabens Luiz era exatamente isso que estava precisando.
    quarta-feira, 13 de abril de 2011 17:46