Sammendrag: i denne vejledning lærer du, hvordan du sammenligner to rækker i samme tabel i Oracle.
forudsat at du har en product_prices tabel, der gemmer prishistorik for alle produkter. Følgende sætning opretter tabellen product_prices :
Code language: SQL (Structured Query Language) (sql)
tabellen product_prices har følgende kolonner:
-
ider en identitetskolonne, hvis værdier genereres automatisk.ider den primære nøgle i tabellen. -
product_idgemmer det Produkt-id, der identificerer et produkt. -
valid_fromgemmer den effektive dato, hvorfra listeprisen er gyldig. -
list_pricegemmer listeprisen for et produkt.
følgende INSERT udsagn indsæt nogle rækker i product_prices tabellen:
Code language: SQL (Structured Query Language) (sql)
som du kan se, ændres prisen på Produkt-id ‘ et. For at finde forskellene mellem hver efterfølgende ændring skal du sammenligne to på hinanden følgende rækker.
vi antager, at der ikke er noget hul i kolonnen id, og listeprisen med den tidligere gyldige fra dato indsættes før listeprisen med senere Gyldig fra dato, følgende forespørgsel sammenligner priser mellem hver ændring af Produkt-id 100:
Code language: SQL (Structured Query Language) (sql)

i denne forespørgsel brugte vi selvforbindelsen, der forbinder product_prices tabellen til sig selv. Følgende join-prædikat tillader den aktuelle række med den forrige række.
Code language: SQL (Structured Query Language) (sql)
nu skal du vide, hvordan du sammenligner to rækker i samme tabel i Oracle.