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. flywayでOracleデータベースを管理することは可能ですか?

    2. PostgreSQLのトレンド:エンタープライズで最も人気のあるクラウドプロバイダー、言語、VACUUM、クエリ管理戦略、導入タイプ

    3. 複数の結果を返すサブクエリで「LIKE」演算子を使用する

    4. PythonMYSQL更新ステートメント