Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 1 mês atrás por fs_abreu.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #97779
    fs_abreu
    Participante

      Pessoal boa tarde.

      Tenho que desenvolver uma query que tenha o total de custo, venda e o lucro, no qual o resultado tem que ser agrupado por usuario.

      Pensei no group by, mas meu problema ao usar o group by é com a coluna onde tenho que fazer a multiplicação. Para ajudar no entendimento segue o select.

      SELECT
      pedi.CODUSUR,
      usuari.NOME,
      Sum(ROUND((pedi.Qtde * mov.CUSTO), 2)) AS Total_Custo,
      Sum(ROUND((pedi.Qtde * pedi.PVENDA), 2)) AS Total_Venda,
      (((pedi.PVENDA / mov.CUSTO) * 100) - 100) AS Lucro
      FROM
      pedi, mov, usuari
      WHERE
      pedi.NUMPED = mov.NUMPED
      AND pedi.CODUSUR = usuari.CODUSUR
      AND pedi.CODPROD = mov.CODPROD
      AND usuari.CODUSUR = pedi.CODUSUR
      AND ((pedi.DATA >= '03012011'
      AND pedi.DATA <= '03012011') AND mov.CUSTO <> 0
      AND usuari.CODUSUR=3)
      GROUP BY
      pedi.CODUSUR, usuari.NOME
      ORDER BY
      usuari.NOME,
      pedi.CODUSUR

      #97788
      fsitja
      Participante

        Acho que falout o SUM() na linha abaixo:

        SUM(((pedi.PVENDA / mov.CUSTO) * 100) - 100) AS Lucro

        #97830
        fs_abreu
        Participante

          Consegui resolver o problema coloquei um Round…
          round(((((Sum(pedi.QT * pedi.PVENDA)) / (Sum(pedi.QT * mov.CUSTO))) * 100)-100),2) as Lucro

          Com isso o valor de 9148221772 foi alterado para 22,88 que é o correto. Agora como que eu faço para fechar esse tópico?

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