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

Dołącz do dwóch tabel, używaj tylko najnowszej wartości prawej tabeli

Jeśli SQL Server 2005+

;WITH m AS 
(
   SELECT Partnum, Formula, RevisionNum,
     rn = ROW_NUMBER() OVER (PARTITION BY PartNum ORDER BY 
       CASE WHEN RevisionNum ='New' THEN 1 ELSE 2 END)
     FROM dbo.Material
)
SELECT p.PartNum, m.Formula, m.RevisionNum
FROM dbo.Parts AS p
INNER JOIN m ON p.PartNum = m.PartNum
WHERE m.rn = 1;

Choć ciekawi Cię, co robisz, gdy jest więcej niż 26 wersji (np. co następuje po Z )?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jednokierunkowa synchronizacja w czasie rzeczywistym z serwera sql do innego repozytorium danych

  2. Klastrowy a nieklastrowany

  3. Używanie PIVOT i JOIN razem

  4. Sztuczki dla ciągłego doskonalenia monitorowania bazy danych

  5. Co SqlDbType mapuje na varBinary(max)?