Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Свържете две таблици, използвайте само последната стойност на дясната таблица

Ако 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;

Макар и любопитно, какво правите, когато има повече от 26 ревизии (напр. какво идва след 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. SQL замества всички NULL

  2. Форматирайте телефонен номер в SQL Server (T-SQL)

  3. Как да импортирам файл на Excel в SQL Server?

  4. Производителност на свързания сървър на SQL Server

  5. Преобразувайте името на месеца в номер на месеца в SQL Server