Calcular Sequencia (Não encontrei um nome mais sugestivo)
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
Curtidas 0
Respostas
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
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