Calcular Sequencia (Não encontrei um nome mais sugestivo)

Oracle

22/06/2010

Boa tarde,
Os dados dessa tabela são importados através de um arquivo texto, até aí tudo bem, está funcionando.


Porém o Campo sequencia está errado (estou retornando o maior + 1), mas o correto é a seguinte forma: (Chave Composta contendo Código, TipoPreco, Filial, Sequencia)

Código    TipoPreco   Sequencia    Filial        ValidadeFim
585880        1                1              999             null
585880        1                2              999        21/06/2010
585880        2                1              999             null
585880        2                2              999             null
585880        1                3              999        22/06/2010
585880        1                1              001        30/06/2010
585880        1                2              001        01/07/2010

Traduzindo em palavras
caso encontre algum valor (Codigo, TipoPreco, Filial) identico no banco, a sequencia vai ser sempre a proxima, porem se encontrar a ValidadeFim mais recente, a sequencia tem que ser a maior também.

espero ter conseguido me expressar bem.
Fábio Cruz

Fábio Cruz

Curtidas 0

Respostas

Jair N.

Jair N.

22/06/2010

Bom Dia, não sei se entendi bem, mas, seria no que voce está querendo algo assim:

SELECT tabela.*
     ,  DENSE_RANK() OVER (PARTITION BY filial, codigo, tipopreco ORDER BY filial DESC, tipopreco, codigo, validadeini DESC NULLS LAST) AS sequencia
  FROM  tabela  

GOSTEI 0
POSTAR