【发布时间】:2019-05-02 20:52:02
【问题描述】:
我有一个相当大的数据表,其中包含多年的帐户。我正在尝试编写一个简单地回溯最近一年的查询。
但是我已经尝试了一些查询,其中一些来自该站点的查询似乎适用于其他查询,但我无法让它在我的数据集上工作。
表格数据如下:
所以在这个例子中,我只需要带回 2018 年。我认为可能有效的查询是:
SELECT *
FROM dbo.Accounts A
INNER JOIN
(SELECT [Account No], MAX(Year) AS MaxYear
FROM dbo.Accounts
GROUP BY [Account No]) MaxYear ON A.[Account No] = MaxYear.[Account No]
AND A.Year = MaxYear.MaxYear
但是,当我查找上面的示例帐号时,这仍然为我提供了 Max 部分的三个记录。
任何帮助将不胜感激。
提前致谢
PS:Year 数据类型是 Float,Account No 是 nvarchar(255)
【问题讨论】:
-
this still provides me three records on the Max part when I look for the example account number above是指 2018、2017、2016 年的 3 条记录,还是每行2018年的 3 条记录? -
样本输入???预期输出???
标签: sql sql-server