Contador conforme muda o registro

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
jerry-sc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 45
Registrado em: Ter, 01 Nov 2011 1:24 pm

Senhores, vejam se podem me ajudar.

Preciso fazer um sequencial, que funcione desta maneira:
Minha tabela tenho campo PRODUTO e o campo QUALIDADE... tenho inúmeros produtos nesta tabela, e preciso que, toda vez que o produto + qualidade sejam diferentes ele gere um contador + 1, ficando mais ou menos assim:

PRODUTO QUALIDADE CONTADOR
produto1 segunda 1
produto1 segunda 1
produto1 primeira 2
produto2 primeira 1
produto2 segunda 2

Toda vez que a característica do produto + qualidade forem alteradas, ele incrementar o contador.
Alguém tem idéia de como fazer isso?

Obrigado!
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Certamente não é a melhor solução. Mas, na pressa entre coisas do trabalho, dá para fazer isso de forma até mais intuitiva.
Criei tipo uma consulta só com PRODUTO+QUALIDADE com distinct e fiz um rownum em cima deles.
Aí esse meu contador servia como "chave" de cada agrupamento desse que juntei com a consulta principal.
Segue:

Selecionar tudo

with items as (
select 'produto1' PRODUTO, 'segunda'  qualidade from dual union all
select 'produto1' PRODUTO, 'segunda'  qualidade from dual union all
select 'produto1' PRODUTO, 'terceira' qualidade from dual union all
select 'produto1' PRODUTO, 'primeira' qualidade from dual union all
select 'produto2' PRODUTO, 'primeira' qualidade from dual union all
select 'produto2' PRODUTO, 'segunda'  qualidade from dual
)
, grup as (
SELECT t.produto
     , t.qualidade
     , ROW_NUMber() OVER (PARTITION BY t.produto ORDER BY t.produto, t.qualidade) ordem     
  from (select distinct i.produto
             , i.qualidade
          from items i) t
order by t.produto
       , t.qualidade          
)

select i.produto
     , i.qualidade
     , g.ordem
  from items i
  join grup g ON (i.produto   = g.produto
              AND i.qualidade = g.qualidade)
order by i.produto
       , i.qualidade
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Bing [Bot], Google [Bot] e 11 visitantes