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

обединяване на множество общи таблични изрази

Опитайте тази заявка, може би това е, което търсите.

;WITH cte AS
 (SELECT dbo.Cable.*, 
         row_number() over(partition by dbo.Cable.TagNo order by dbo.Cable.CableRevision desc) as rn
  FROM dbo.Cable 
  WHERE dbo.Cable.CableRevision = @CoreRevision
  ), cte2 AS
 (SELECT dbo.Cable.TagNo, dbo.Core.*, 
         row_number() over(partition by dbo.Core.CoreNo order by dbo.Core.CoreRevision desc) as rn
  FROM dbo.Core INNER JOIN dbo.Cable ON dbo.Cable.Id = dbo.Core.CableId
  WHERE dbo.Core.CoreRevision <= @CoreRevision
  )
  SELECT *
  FROM cte c FULL JOIN cte2 c2 ON c.TagNo = c2.TagNo
  WHERE c.rn = 1 OR c2.rn = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо заявката за Microsoft SQL Server 2012 отнема минути в сравнение с JDBC 4.0, но секунди в Management Studio?

  2. Филтриране на израза SELECT по време на деня

  3. Свържете SAP IQ към SQL Server

  4. SQL Server 2008 Spatial:намерете точка в многоъгълник

  5. Сравняване на стойности на 2 таблици и изброяване на редовете, които се различават