Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Robson Rodrigues

RowNum por Produto

Recommended Posts

Bom dia

 

Estou fazendo um select de uma tabela de traz varias vezes o mesmo produto, gostaria criar uma coluna e numerar as linhas conforme o produto.

 

O select no caso é esse:

select
tf.produto,tf.descritivo,
e.sigla,v.ano,
v.qtde_jan,v.qtde_fev,v.qtde_mar,v.qtde_abr,v.qtde_mai,v.qtde_jun,
v.qtde_jul,v.qtde_ago,v.qtde_set,v.qtde_out,v.qtde_nov,v.qtde_dez
from vw_tabela_fornecedor tf,
     vw_vendas_colunas v,
     empresas e
where tf.fornecedor = :FORNECEDOR
and   tf.produto = v.produto
and   v.empresa = e.id
and   v.ano between :ANOI and :ANOF
order by tf.descritivo,v.ano desc, v.empresa

Gostaria de cria uma coluna chamada ordem conforme o tf.produto, ficaria mais ou menos assim

ordem   Produto           Descritivo
1            17           Teste
1            17           Teste
2            24           Arquivo
2            24           Arquivo
2            24           Arquivo
3            62           Base
4            82           Analise
4            82           Analise

Alguma ideia de como posso fazer isso?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.oracle-base.com/articles/misc/analytic-functions.php

 

http://www.oracle-base.com/articles/misc/rank-dense-rank-first-last-analytic-functions.php

 

tente

select
tf.produto,tf.descritivo,
e.sigla,v.ano,
v.qtde_jan,v.qtde_fev,v.qtde_mar,v.qtde_abr,v.qtde_mai,v.qtde_jun,
v.qtde_jul,v.qtde_ago,v.qtde_set,v.qtde_out,v.qtde_nov,v.qtde_dez,
RANK() OVER (PARTITION BY tf.produto ORDER BY tf.produto) seq_prod
from vw_tabela_fornecedor tf,
     vw_vendas_colunas v,
     empresas e
where tf.fornecedor = :FORNECEDOR
and   tf.produto = v.produto
and   v.empresa = e.id
and   v.ano between :ANOI and :ANOF
order by tf.descritivo,v.ano desc, v.empresa

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.