Resumo: neste tutorial, você vai aprender como comparar duas linhas na mesma tabela no Oracle.
supondo que você tenha uma tabela product_prices que armazene o histórico de preços de todos os produtos. A seguinte instrução cria o product_prices tabela:
Code language: SQL (Structured Query Language) (sql)
O product_prices tabela tem as seguintes colunas:
-
idé uma coluna de identidade, cujos valores são gerados automaticamente. Oidé a chave primária da tabela. -
product_idarmazena o ID do produto que identifica um produto. -
valid_fromarmazena a data efetiva a partir da qual o preço de tabela é válido. -
list_pricearmazena o preço de tabela de um produto.
as seguintes instruções INSERT inserem algumas linhas na tabela product_prices :
Code language: SQL (Structured Query Language) (sql)
como você pode ver, o preço do ID do produto muda. Para encontrar as diferenças entre cada alteração subsequente, você precisa comparar duas linhas sucessivas.
assumimos que não há diferença na id coluna e o preço de lista com o anterior válida a partir da data é inserida antes da lista de preços com posterior válido a partir da data, a consulta a seguir compara os preços entre cada alteração da identificação do produto 100:
Code language: SQL (Structured Query Language) (sql)

nesta consulta, foi utilizada a auto-junção que une a product_prices tabela própria. O seguinte predicado de junção permite a linha atual com a linha anterior.
Code language: SQL (Structured Query Language) (sql)
Agora, você deve saber como comparar duas linhas na mesma tabela no Oracle.