› Fóruns › SQL e PL/SQL › Calcular Sequencia (Não encontrei um nome mais sugestivo) › Calcular Sequencia (Não encontrei um nome mais sugestivo)
Importa a tabela e depois roda esse procedimento…
DECLARE
l_contador NUMBER(3);
BEGIN
FOR i IN (SELECT DISTINCT Codigo, TipoPreco, Filial FROM TABELA) LOOP
l_contador := 1;
FOR j IN (SELECT ROWID, Codigo, TipoPreco, Filial FROM TABELA
WHERE Codigo = i.Codigo AND TipoPreco = i.TipoPreco
AND Filial = i.Filial ORDER BY ValidadeFim NULLS FIRST) LOOP
UPDATE TABELA SET Sequencia = l_contador WHERE ROWID = j.ROWID;
l_contador := l_contador + 1;
END LOOP;
END LOOP;
END;
/
Só precisa acertar o nome da tabela nas consultas do procedimento e os nomes das colunas… às vezes pode ter algum errinho de programação também pois eu não testei, mas a idéia é essa aí…
Não coloquei o commit só pra você poder testar… Mas se o procedimento estiver certo, depois vc commita manualmente!