Select 来自多列的最新信息并合并到一个字段中
Select most recent from multiple columns and combine into a single field
我有一个 table,我试图从每个用户的字段 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
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];
我有一个 table,我试图从每个用户的字段 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
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];