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

kwerenda sql z samodołączeniem

WITH ranked AS (
  SELECT
    *,
    rn = ROW_NUMBER() OVER (PARTITION BY RecId ORDER BY Dt DESC)
  FROM TableA
)
SELECT
  r1.Id,
  r1.Dt,
  r1.Stat,
  r1.RecId
FROM ranked r1
  INNER JOIN ranked r2 ON r1.RecId = r2.RecId AND r2.rn = 1
WHERE r1.Stat = 2

AKTUALIZUJ po aktualizacji pytania

WITH ranked AS (
  SELECT
    *,
    rn = ROW_NUMBER() OVER (PARTITION BY RecId ORDER BY Dt DESC)
  FROM TableA
)
SELECT
  Id,
  Dt,
  Stat,
  RecId
FROM ranked
WHERE Stat = 2 AND 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. SQL Server 2008 zmienia przechwytywanie danych a wyzwalacze w ścieżce audytu

  2. Najszybszy sposób przesyłania danych tabeli Excel do SQL 2008R2

  3. Konwertuj DateTime na rrrrMMddGGmm w T-SQL

  4. Dodaj konto pocztowe bazy danych do profilu (T-SQL)

  5. Sortowanie alfanumeryczne