sql >> Databáze >  >> RDS >> Sqlserver

T-SQL poddotaz Max (datum) a spojení

Zde je další způsob, jak to udělat bez dílčích dotazů. Tato metoda často překonává ostatní, takže stojí za to vyzkoušet obě metody, abyste zjistili, která poskytuje nejlepší výkon.

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

To poskytne více výsledků, pokud máte dvě ceny se stejným PŘESNÝM datem ceny (většina ostatních řešení bude dělat totéž). Také není nic, co by zohledňovalo poslední datum ceny v budoucnosti. Možná budete chtít zvážit kontrolu bez ohledu na to, kterou metodu nakonec použijete.



  1. Obnovení ukázkové databáze DW AdventureWorksDW2019

  2. Jak se připojit k výchozí instanci serveru SQL Server a pojmenovaným instancím serveru SQL - SQL Server / Výukový program TSQL část 2

  3. Funkce MySQL POW() – Zvyšte hodnotu na sílu jiné hodnoty

  4. Jak funguje SCHEMA_ID() v SQL Server