sql >> Database >  >> RDS >> Sqlserver

sql-query met self-join

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

UPDATE na de update van de vraag

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. De uitvoer van Getdate wijzigen

  2. Verbinding maken met externe MySQL-database

  3. Kan ik een Postgres-trefwoord als alias in de selectielijst gebruiken?

  4. Een database-e-mailaccount toevoegen aan een profiel (SSMS)