Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Maksymalna wartość podzapytania T-SQL (data) i łączenia

Oto inny sposób na zrobienie tego bez podzapytań. Ta metoda często przewyższa inne, dlatego warto przetestować obie metody, aby zobaczyć, która zapewnia najlepszą wydajność.

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

Daje to wiele wyników, jeśli masz dwie ceny z tą samą DOKŁADNĄ datą ceny (większość innych rozwiązań zrobi to samo). Poza tym nie ma nic do wyjaśnienia, że ​​ostatnia data ceny przypada w przyszłości. Możesz rozważyć sprawdzenie tego niezależnie od metody, z której korzystasz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Szacowanie przyłączeń programu SQL Server przy użyciu zgrubnego wyrównania histogramu

  2. Nazwane wystąpienie programu SQL Server z projektem Instalatora programu Visual Studio 2017

  3. Jak mogę pominąć nawiasy kwadratowe w klauzuli LIKE?

  4. Tabela historii programu SQL Server — wypełnianie za pomocą SP lub wyzwalacza?

  5. Jak mogę zobaczyć wszystkie znaki specjalne dozwolone w polu varchar lub char w programie SQL Server?