sql >> Database teknologi >  >> RDS >> Sqlserver

T-SQL-underforespørgsel Max (dato) og tilslutninger

Her er en anden måde at gøre det på uden underforespørgsler. Denne metode vil ofte overgå andre, så det er værd at teste begge metoder for at se, hvilken der giver den bedste ydeevne.

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

Dette vil give flere resultater, hvis du har to priser med samme PRÆCISDato (de fleste andre løsninger vil gøre det samme). Desuden er der ikke noget at tage højde for, at den sidste prisdato ligger i fremtiden. Du vil måske overveje en check for det, uanset hvilken metode du ender med at bruge.



  1. Sådan beregnes median i PostgreSQL

  2. Sådan gør du SQLites LIKE-operatør case-sensitive

  3. Hvordan man laver et valg med array indeholder værdisætning i psql

  4. Beregn åbningstider mellem to datoer