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.
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)