所以我遇到的问题是,当我根据表格创建一个新的表或视图时,我需要一个名为“IsLatest”的列,以显示该记录是否是表中的最新记录,或者基于“接收日期”列,它将自动显示通过ssis填充。 ID_Number和AccountName列将具有多个重复项,但ReceivedDate列将有所不同。因此,当分析师查看表时,他们所要做的就是阅读Islatest标志
您可以使用公用表表达式来首先查找最新日期,然后在case语句中使用它来创建表的视图。
;WITH cteMaxRecievedDate(acctno, MaxRecievedDate) AS
(
SELECT ID_Number, AccountName, max(RecievedDate)
FROM Table GROUP BY ID_Number, AccountName
)
SELECT t1.ID_Number, t1.AccountName,
CASE WHEN t2.MaxRecievedDate = t1.RecievedDate THEN 'true' ELSE 'false' END AS IsLatest
FROM table t1
INNER JOIN cteMaxRecievedDateon t2 ON t1.ID_Number = t2.ID_Number
AND t1.AccountName = t2.AccountName
GROUP BY t1.ID_Number, t1.AccountName, t1.RecievedDate, t2.MaxRecievedDate