【问题标题】:Select most recent from multiple columns and combine into a single field从多个列中选择最新的并组合成一个字段
【发布时间】:2021-04-16 15:15:06
【问题描述】:

我有一个表,我试图从字段 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

【问题讨论】:

  • 你能发布到目前为止你尝试过的东西吗?
  • 感谢您协助 MarkDown 格式化@MattiaRighetti

标签: ms-access-2016


【解决方案1】:

不使用UNION的另一种方式

SELECT Table.User, IIf(FieldB>FieldC,FieldB,FieldC) AS NewField
FROM [Table];

【讨论】:

  • 非常感谢!
【解决方案2】:
SELECT
USER, Max(FieldB) as FieldD
FROM ( SELECT
       USER, FieldB
       FROM Table
       UNION
       SELECT
       USER, FieldC
       FROM Table) as T1
GROUP BY USER

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

【讨论】:

    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多