plSQL一条记录基于另一行



如果有人问这个问题,我很抱歉,我已经看过了。我"learnt"3月,我参加了一个为期一天的课程。

我目前有一组数据,当提取看起来像

Pay     Ref AHRA ABA DATE           ANC DESCRIPTION SEQUENCE NUMBER
12345   4/3/2022 12:00:00 AM    General Needs accounts  50
12345   4/3/2022 12:00:00 AM    Working Age Claimants   45
12345   4/3/2022 12:00:00 AM    All Accounts           40
12345   4/3/2022 12:00:00 AM    No Benefits Direct  35
12345   4/3/2022 12:00:00 AM    Current Rent Accounts   30

我要从SQL开发人员提取的是上面的序列号是最低的。从上面我想要

12345   4/3/2022 12:00:00 AM    Current Rent Accounts   30 

因此,对于每个薪酬Ref,我想提取薪酬Ref,但仅使用最小序列号。希望这能说得通。

谢谢。

我认为MIN()函数是你正在寻找的,你会想使用GROUP BY来获得每个Pay Ref:

的最低值
SELECT "Pay Ref", 
MIN("SEQUENCE NUMBER") AS MinSequenceNumber
FROM #payref
GROUP BY "Pay Ref";

这将获得表中每个Pay Ref的最低序列号

如果您想获得每个工资ref的完整行与最低序列号,您可以像这样连接:

SELECT pr1.*
FROM #payref AS pr1
INNER JOIN
(
SELECT "Pay Ref", 
MIN("SEQUENCE NUMBER") AS MinSequenceNumber
FROM #payref
GROUP BY "Pay Ref"
) AS pr2 ON pr1."SEQUENCE NUMBER" = pr2.MinSequenceNumber;

相关内容

  • 没有找到相关文章

最新更新