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

22/06/2010

0

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

Responder

Posts

23/06/2010

Jair N.

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  

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar