Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #97704
    fs_abreu
    Participante

      Pessoal bom dia.

      Preciso fazer uma consulta, no qual tenho o seguinte cenário:

      SELECT TABELA1.campo1,
      TABELA1.campo2,
      TABELA2.campo1,
      TABELA2.campo2,
      TABELA2.campo3,
      TABELA2.campo2 * TABELA2.c3 as Tot_Venda,
      TABELA3.campo1,
      TABELA2.campo2 * TABELA3.campo1 as Tot_Custo,
      ((TABELA2.campo3 / TABELA3.campo1) * 100) – 100 as Lucro
      FROM TABELA1,
      TABELA2,
      TABELA3
      WHERE……

      Nesse cenário preciso ter como resultado um subtotal, e no final um total geral. Inicialmente pensei em usar o GROUP BY, mas como tenho colunas com multiplicação e divisao e as mesma utilizam apelido não deu certo.

      Então encontrei o ROLLUP, mas não estou conseguindo desenvolver a consulta, pois ainda não sei como colocar as colunas com multiplicação e divisão utilizando o ROLLUP.

      Por favor alguem poderia me ajudar nessa questão. Existe alguma outra forma ou um exemplo para utilizar o ROLLUP, onde eu tenha subtotal e total?

      #97705
      leandrolbs
      Participante

        cole o script na integra .. é possivel?

        #97708
        fs_abreu
        Participante

          [quote=”leandrolbs”:1iz8jpn9]cole o script na integra .. é possivel?[/quote]

          SELECT
          PEDIDO.VEND AS VENDEDOR,
          PEDIDO.QUANT AS QTDE,
          PEDIDO.QUANT * PEDIDO.PREÇO_VENDA AS TOT_VENDA,
          PEDIDO.QUANT * MOVIMENTACAO.ULTIMO_CUSTO AS TOT_CUSTO,
          ((PEDIDO.PREÇO_VENDA / MOVIMENTACAO.ULTIMO_CUSTO) * 100) – 100 AS LUCRO
          FROM
          PEDIDO, MOVIMENTACAO, PRODUTO
          WHERE
          MOVIMENTACAO.COD_PRODUTO = PRODUTO.COD_PRODUTO
          AND MOVIMENTACAO.COD_PEDIDO = PEDIDO.COD_PEDIDO
          AND PEDIDO.COD_PRODUTO = PRODUTO.COD_PRODUTO
          ORDER BY
          PEDIDO.VEND,
          PEDIDO.QUANT

          #97712
          fsitja
          Participante

            Olá,

            Sobre o ROLLUP você pode encontrar mais detalhes na documentação aqui:
            http://download.oracle.com/docs/cd/E118 … #DWHSG8608

            Outra coisa que pode ser útil nesse seu caso é o GROUPING SETS:
            http://download.oracle.com/docs/cd/E118 … #DWHSG8631

            Isso porque geralmente o ROLLUP vai gerar níveis de subtotalização que você não quer, e precisa filtrar no having usando a função GROUPING(). O Grouping Sets é mais customizado.

            Se você puder postar um exemplo de seus dados, e um exemplo daquilo que você gostaria que a consulta exibisse para os dados fornecidos, fica mais simples ajudá-lo a achar uma solução.

            #97715
            fs_abreu
            Participante

              [quote=”fsitja”:21lsbbrr]Olá,

              Sobre o ROLLUP você pode encontrar mais detalhes na documentação aqui:
              http://download.oracle.com/docs/cd/E118 … #DWHSG8608

              Outra coisa que pode ser útil nesse seu caso é o GROUPING SETS:
              http://download.oracle.com/docs/cd/E118 … #DWHSG8631

              Isso porque geralmente o ROLLUP vai gerar níveis de subtotalização que você não quer, e precisa filtrar no having usando a função GROUPING(). O Grouping Sets é mais customizado.

              Se você puder postar um exemplo de seus dados, e um exemplo daquilo que você gostaria que a consulta exibisse para os dados fornecidos, fica mais simples ajudá-lo a achar uma solução.[/quote]

              Obrigado vou primeiro buscar ver se consigo desenvolver algo, se consegui volto aqui para agradecer, se não consegui, volta para solicitar mais ajude mostrando as informações que voce solicitou.

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