sql >> Database >  >> RDS >> Sqlserver

T-SQL-subquery Max (datum) en joins

Hier is een andere manier om het te doen zonder subquery's. Deze methode zal vaak beter presteren dan andere, dus het is de moeite waard om beide methoden te testen om te zien welke de beste prestaties geeft.

SELECT
     PRT.PartID,
     PRT.PartNumber,
     PRT.Description,
     PRC1.Price,
     PRC1.PriceDate
FROM
     MyParts PRT
LEFT OUTER JOIN MyPrices PRC1 ON
     PRC1.PartID = PRT.PartID
LEFT OUTER JOIN MyPrices PRC2 ON
     PRC2.PartID = PRC1.PartID AND
     PRC2.PriceDate > PRC1.PriceDate
WHERE
     PRC2.PartID IS NULL

Dit geeft meerdere resultaten als u twee prijzen heeft met dezelfde EXACTE prijsdatum (de meeste andere oplossingen zullen hetzelfde doen). Ook is er niets om rekening mee te houden dat de laatste prijsdatum in de toekomst ligt. U kunt hiervoor een controle overwegen, ongeacht welke methode u uiteindelijk gebruikt.



  1. Woordenlijst van SQL Server-query's - A Stick Shift voor DBA's

  2. Een MariaDB Galera-cluster runnen zonder orkestratietools - DB Container Management:deel twee

  3. Inleiding tot soorten grafieken

  4. Een voorbeeld om de kwetsbaarheid van SQL-injectie en de preventie ervan in Oracle aan te tonen