gpt4 book ai didi

sql - 如何根据Batch ID获取最新记录

转载 作者:行者123 更新时间:2023-12-04 02:11:23 25 4
gpt4 key购买 nike

declare @tab table 
(
BatchID INT,
Code VARCHAR(20),
CommType INT,
LastStatus VARCHAR(5),
SourceModiifedLastDate varchar(30)
)

INSERT INTO @tab(BatchID, Code, CommType, LastStatus, SourceModiifedLastDate)
VALUES (1, 'A003-3', 3, 'I', '2013-06-17 21:28:01.827'),
(2, 'A004-1', 1, 'I', '2014-06-17 21:28:01.827'),
(6, 'A003-3', 3, 'U', '2015-06-17 21:28:01.827'),
(9, 'A003-3', 3, 'D', '2015-06-17 21:28:01.827'),
(11, 'A004-1', 3, 'D', '2013-06-17 21:28:01.827'),
(12, 'A004-1', 1, 'I', '2015-06-17 21:28:01.827'),
(16, 'A005-3', 3, 'I', '2011-06-17 21:28:01.827'),
(19, 'A005-3', 3, 'D', '2013-0617 21:28:01.827'),
(20, 'A006-3', 3, 'U', '2011-06-17 21:28:01.827'),
(21, 'A006-3', 3, 'I', '2013-0617 21:28:01.827')

Select * from @tab

在我的示例数据中,我只需要根据最新的 BatchID 获取 Laststatus = 'D' 记录。

例如,如果您看到代码 = 'A003-3',它已被插入、更新和删除,我需要获取此记录

如果您看到代码 = 'A004-1',它已被插入、删除和插入,我不需要这条记录。

输出应该是:

BatchID Code    CommType    LastStatus  SourceModiifedLastDate
---------------------------------------------------------------
9 A003-3 3 D 2015-06-17 21:28:01.827
19 A005-3 3 D 2013-06-17 21:28:01.827

我只需要根据最新的 BatchID 和最新日期获取最新删除的记录。

我已经尝试使用 MAX 条件和 GROUP BY 来过滤记录,但我无法得到我要找的东西。

请帮我想个办法

最佳答案

select tt.*
from (select t.*
, row_number() over (partition by Code order by BatchId desc) as rn
from @tab t
) tt
where tt.rn = 1
and tt.LastStatus = 'D';

关于sql - 如何根据Batch ID获取最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37886097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com