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

Sammenføj to tabeller, brug kun den seneste værdi af højre tabel

Hvis 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;

Selvom du er nysgerrig, hvad gør du, når der er mere end 26 revisioner (f.eks. hvad der kommer efter Z )?



  1. Hvordan sammenligner man værdier for sidste og næstsidste indtastning i tabellen?

  2. MySQL-serveren er forsvundet med Ruby on Rails

  3. Webside, der udskriver spørgsmålstegn i stedet for unicode-tegn, selvom tegnsæt og sortering er korrekte?

  4. FEJL:Kunne ikke bygge gem native udvidelse - Fejl ved installation af mysql2