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

łączenie wielu wspólnych wyrażeń tabelowych

Wypróbuj to zapytanie, być może właśnie tego szukasz.

;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. Jak uzyskać listę wszystkich ograniczeń sprawdzających w bazie danych SQL Server — samouczek SQL Server / TSQL część 85?

  2. 10 faktów na temat monitorowania wydajności bazy danych, które mogą Cię zaskoczyć

  3. Porównanie wydajności SQL Server CE 4.0

  4. SQL Server 2008 R2 — wyspy i luki

  5. Jak mogę zobaczyć wszystkie znaki specjalne dozwolone w polu varchar lub char w programie SQL Server?