簡體   English   中英

減去兩行並在Sql Server中保留具有相同ID的最新行

[英]subtract two rows and keep the latest row with the same ID in Sql Server

我有一個選擇查詢,我需要刪除或減去兩行,並保持最初的chargeID為同一個patid最初我用在我的where condtion例如

 where transactiontype!=void and transactiontype='charges'.

我需要保留最新的“收費”行。 下面是表格 表名稱tranMaster

Try this 

DECLARE @T TABLE
(
    PatId INT,
    ChargeId INT IDENTITY(1,1),
    TranType VARCHAR(20),
    SomeText VARCHAR(20)
)

INSERT INTO @T
(
    PatId,
    TranType,
    SomeText
)
VALUES(598,'Void','Sample 11'),
    (598,'Charges','Sample 12'),
    (598,'Charges','Sample 13'),
    (611,'Void','Sample 21'),
    (611,'Void','Sample 22'),
    (611,'Charges','Sample 23')

;WITH CTE
AS
(
    SELECT
       RN = ROW_NUMBER() OVER(PARTITION BY PatId,TranType ORDER BY ChargeId DESC),
       *
       FROM @T
)
SELECT
    *
    FROM CTE
       WHERE RN = 1

樣本輸入

在此輸入圖像描述

樣本輸出

在此輸入圖像描述

使用patid分區的排名功能和chargeid DESC的順序,然后從where子句中過濾掉不必要的記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM