从多列中选择最新的并合并到一个字段中

问题描述

我有一个表,我试图从每个用户的字段 b 或字段 c 中获取最新日期。然后将其合并为一个字段。使用 MS Access 2016

示例。

USER FieldB FieldC
1 1/1/2020 2/1/2020
2 1/1/2020 -
3 - 3/1/2020
4 - -

我需要这样返回的数据。

USER FieldB
1 2/1/2020
2 1/1/2020
3 3/1/2020
4 -

非常感谢任何帮助。提前致谢。

编辑:让它与以下查询一起使用。我相信有更优雅的解决方案。

SELECT
USER,Max(FieldB) as FieldD
FROM ( SELECT
       USER,FieldB
       FROM Table
       UNION
       SELECT
       USER,FieldC
       FROM Table) as T1
GROUP BY USER

解决方法

另一种不使用 UNION 的方法

SELECT Table.User,IIf(FieldB>FieldC,FieldB,FieldC) AS NewField
FROM [Table];
,
SELECT
USER,Max(FieldB) as FieldD
FROM ( SELECT
       USER,FieldB
       FROM Table
       UNION
       SELECT
       USER,FieldC
       FROM Table) as T1
GROUP BY USER

这是我最终想出的答案,仍然希望得到更优雅的答案。