- Este tópico contém 4 respostas, 3 vozes e foi atualizado pela última vez 15 anos, 2 meses atrás por
fs_abreu.
-
AutorPosts
-
14 de janeiro de 2011 às 3:25 pm #97704
fs_abreu
ParticipantePessoal 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?
14 de janeiro de 2011 às 3:51 pm #97705leandrolbs
Participantecole o script na integra .. é possivel?
14 de janeiro de 2011 às 4:18 pm #97708fs_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.QUANT14 de janeiro de 2011 às 5:05 pm #97712fsitja
ParticipanteOlá,
Sobre o ROLLUP você pode encontrar mais detalhes na documentação aqui:
http://download.oracle.com/docs/cd/E118 … #DWHSG8608Outra coisa que pode ser útil nesse seu caso é o GROUPING SETS:
http://download.oracle.com/docs/cd/E118 … #DWHSG8631Isso 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.
14 de janeiro de 2011 às 5:17 pm #97715fs_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 … #DWHSG8608Outra coisa que pode ser útil nesse seu caso é o GROUPING SETS:
http://download.oracle.com/docs/cd/E118 … #DWHSG8631Isso 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.
-
AutorPosts
- Você deve fazer login para responder a este tópico.