Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да елиминирате искове с ClaimStatus =1 въз основа на дата на дейност. SQL Server 2012

SQL ДЕМОНСТРАЦИЯ

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

ИЗХОД

Освен това, ако има само 2 статуса, можете също да направите

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при свързване в sql сървър 2005

  2. Регулярен израз за валидиране на име на таблица на SQL Server

  3. Това ли е програмен начин за получаване на SQL ключови думи (запазени думи)

  4. INSERT INTO @table_name...EXEC usp_name

  5. Как да активирам разрешения в споделяне на папки на SQL Server 2012 FileTable?