【发布时间】:2021-02-04 15:35:47
【问题描述】:
我有一张包含发票操作的表格。一张发票可以有多个操作。我需要为每张发票创建一个包含一行的视图。那一行应该是最新的行动。我目前有以下:
SELECT tbl.*
FROM [dbo].[Tester] tbl JOIN
(SELECT TransNo, MAX(TransDate) AS MxDt
FROM [dbo].[Tester]
GROUP BY TransNo
) sub
ON tbl.TransNo = sub.TransNo AND TransDate = MxDt;
我在这里看到了多个帖子,说明这是这样做的方法。但是我在结果集中得到多行具有相同的 TransNo?我错过了什么吗?
数据集:
结果运行查询:
我希望每笔交易只有一行。即使它有两个相同的日期,也应该只取一个。
【问题讨论】:
-
我完全不明白这些数据是如何被使用的。
-
提供样本数据和期望的结果。
-
我已经更新了帖子。感谢您的帮助。
标签: sql sql-server subquery inner-join greatest-n-per-group