我正在Visual Studio中编写一个SQL脚本,我有2个表,一个表名为ATB
,它对Account ID
具有唯一的行,而第二个表也具有AccountID
,并且另一列称为SettlementTypeID
,此第二列具有重复的值,因为它记录了对AccountID
所做的更改,这意味着它可以有10行,其中AccountID
相同,而{ {1}}日期列。
我正在他们之间进行联接,以使用Lastmodified
来获得表SettlementTypeID
上每个AccountID
的{{1}}以避免重复的值,但是对于某些{ {1}}根本不起作用
以下是我当前的代码:
ATB
我不知道我在做什么错,但是当我删除MAX(LastModifiedDate)
列并仅保留AccountIDs
和SELECT
t.AccountID,
r.SettlementTypeID,
r.LastModifiedDate
FROM
(SELECT
accs.AccountID,
accs.SettlementTypeID,
MAX(accs.LastModifiedDate) AS LastModifiedDate
FROM
AccountSettlement accs
INNER JOIN
#ATB atb WITH (nolock) ON atb.AccountID = accs.AccountID
WHERE
atb.ReferenceType = 'Settlement'
AND atb.SettlementType IS NULL
GROUP BY
accs.AccountID, accs.SettlementTypeID) r
INNER JOIN
AccountSettlement t ON t.AccountID = r.AccountID
AND t.SettlementTypeID = r.SettlementTypeID
AND t.LastModifiedDate = r.LastModifiedDate
列时,它可以正常工作。
下面是我得到的一小部分:
这是脚本根据找到的最大日期提供的数据: