Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách loại bỏ xác nhận quyền sở hữu với ClaimStatus =1 dựa trên Ngày hoạt động. 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

ĐẦU RA

Ngoài ra, nếu chỉ có 2 trạng thái, bạn cũng có thể làm được

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. Cách sử dụng thuộc tính IDENTITY () trong SQL Server

  2. Kích hoạt SQL Server - thứ tự thực thi

  3. Chèn hàng loạt với tham số tên tệp

  4. Câu lệnh SQL Server CASE .. WHEN .. IN

  5. Làm thế nào để bạn lập mô hình kế thừa trong cơ sở dữ liệu một cách hiệu quả?