sql >> Databasteknik >  >> RDS >> Sqlserver

Slå samman två tabeller, använd endast senaste värdet av höger tabell

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

Även om du är nyfiken, vad gör du när det finns fler än 26 revisioner (t.ex. vad som kommer efter Z )?



  1. postgresql-installationen misslyckades

  2. Hur man visar bilder från databasen med php

  3. hanteringsskenor + postgres och tidszoner

  4. Doktrinkolumnen hittades inte:1054 Okänd kolumn 's.features' i 'field list''