sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man eliminerar anspråk med ClaimStatus =1 baserat på aktivitetsdatum. SQL Server 2012

SQL DEMO

WITH cte as (
    SELECT ClaimNumber, 
           ClaimStatus,
           ROW_NUMBER() over (PARTITION BY ClaimNumber ORDER BY ActivityDate DESC) as rn
    FROM @TempTable
)
SELECT t.*
FROM @TempTable t
JOIN (SELECT *
      FROM cte
      WHERE rn = 1) f
  ON t.ClaimNumber = f.ClaimNumber
 AND f.ClaimStatus = 0

OUTPUT

Dessutom om bara 2 status kan du också göra

WITH cte as (
    SELECT ClaimNumber
    FROM @TempTable
    GROUP BY ClaimNumber
    HAVING MAX(ClaimStatus) = 0
)
SELECT t.*
FROM @TempTable t
WHERE ClaimNumber IN (SELECT * FROM cte)


  1. Problem med T-SQL TRY CATCH?

  2. Hur skapar man SQL Server-tabellschema från ett XML-schema? (med .NET och Visual Studio 2008)

  3. Flera rader i en enda rad och kombinera kolumn SQL

  4. Returnera en boolean från en PHP-fil till AJAX one - Follow-knappen