Como Comparar Duas Linhas na Mesma Tabela no Oracle

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. O id é a chave primária da tabela.
  • product_id armazena o ID do produto que identifica um produto.
  • valid_from armazena a data efetiva a partir da qual o preço de tabela é válido.
  • list_price armazena 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)
Como Comparar Duas Linhas na Mesma Tabela no Oracle

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.

Write a Comment

O seu endereço de email não será publicado.