Página 1 de 1

Prosseguir com sequencia

Enviado: Ter, 20 Mar 2012 6:02 pm
por jks1903
Pessoal, estou com um problema para implementar uma lógica em uma query, na verdade um update, e queria ver se alguém tem uma ideia ou se já implantou algo parecido.

Tenho uma tabela que possui um campo cd_remessa e outro campo cd_item.

cada remessa pode possuir vários itens, por exemplo:

Selecionar tudo

remessa     item
=================
1                   1
1                   2
1                   3
2                   1
2                   2
2                   3
Esse item é simplesmente um "contador de itens" da remessa, ou seja, ao mudar a remessa o item será 1 novamente.

O que ue preciso fazer é unir cerca de 50 remessas em uma só, seguindo com a sequencia do campo item. Aí encontra-se o meu problema, não estou conseguindo montar uma lógica para seguir a numeração dos itens.

Se alguém puder me ajudar ficarei grato.

Obrigado desde já.

Re: Prosseguir com sequencia

Enviado: Ter, 20 Mar 2012 6:40 pm
por jks1903
Fazendo uns testes aqui eu consegui, não sei se é a melhor forma mas resolveu meu problema.

No update, juntamente com o update da remessa, eu fiz um update no item, fazendo cd_item = ROWNUM, e ficou perfeito.

Caso alguém mais precise de algo semelhante fica o tópico.

Vlw.

Re: Prosseguir com sequencia

Enviado: Sex, 23 Mar 2012 5:04 pm
por Trevisolli
Se lhe ajudar, dá uma olhada neste código, com uma tabela que montei fictícia:

Selecionar tudo


with cSeq as (select 1 as cod
                from dual
              union all
              select 1 as cod
                from dual
              union all
              select 2 as cod
                from dual
              union all
              select 2 as cod
                from dual
              union all
              select 2 as cod
                from dual
              union all
              select 3 as cod
                from dual )
select cseq.cod, 
       RANK() OVER (PARTITION BY cseq.cod order by rownum desc) "rank"
  from cseq