提问人:Arian 提问时间:11/1/2023 最后编辑:marc_sArian 更新时间:11/1/2023 访问量:83
获取 MS Access 中每列的最新值
Get the latest values in each column in MS Access
问:
请考虑 MS Access 中的下表:
Id Year Month F1 F2 F3 F4
----------------------------------------------------------------------
1 2020 1 A B 1 2
1 2020 2 AA
1 2020 3 BB 11
2 2020 1 3 4
2 2020 2 F G
我想要这个结果:
Id F1 F2 F3 F4
-----------------------------------------------
1 AA BB 11 2
2 F G 3 4
我想要每列中的最新值,并将它们合并到每一行中。Id
如何使用MS Access中的查询实现此结果。
答:
3赞
id'7238
11/1/2023
#1
SELECT
Id,
(SELECT TOP 1 F1 FROM test t1 WHERE t1.Id = t.Id AND F1 IS NOT NULL ORDER BY [Year] DESC, [Month] DESC) AS F1,
(SELECT TOP 1 F2 FROM test t1 WHERE t1.Id = t.Id AND F2 IS NOT NULL ORDER BY [Year] DESC, [Month] DESC) AS F2,
(SELECT TOP 1 F3 FROM test t1 WHERE t1.Id = t.Id AND F3 IS NOT NULL ORDER BY [Year] DESC, [Month] DESC) AS F3,
(SELECT TOP 1 F4 FROM test t1 WHERE t1.Id = t.Id AND F4 IS NOT NULL ORDER BY [Year] DESC, [Month] DESC) AS F4
FROM (
SELECT DISTINCT Id
FROM test
) t
如果示例中的空单元格是空字符串而不是 NULL,则子查询中的条件将为 .F1 <> "
评论