sql >> Database teknologi >  >> RDS >> Sqlserver

sql-forespørgsel med selvtilslutning

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

OPDATERING efter spørgsmålets opdatering

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. Hvordan indsætter du store klatter i Oracle 10G ved hjælp af System.Data.OracleClient?

  2. tidszone problem med database

  3. Oracle SQL Transpose

  4. Udfladning af en tabel med 1 række til en nøgleværdi-partabel