【问题标题】:Access - retrieving status and date puzzle访问 - 检索状态和日期难题
【发布时间】:2018-08-03 18:47:06
【问题描述】:

在 Access 2016 中,我有以下表格:

Table1
------
| ID | FK_ID | Status_date |Status_ID |
---------------------------------------
| 1  | 11    | d1          | 1        |
| 2  | 11    | d2          | 2        |
| 3  | 22    | d3          | 3        |
| 4  | 22    | d4          | 3        |

LookupTable1
------------
| OBJ_ID | Status |
-------------------
| 1      | A      |
| 2      | B      |
| 3      | C      |

我想产生以下结果。这最终将导出到 Excel。

xls report
==========
| FK_ID | Status_1_date | Status_2_date | Status_3_date |  <-- these will be aliased
=========================================================
| 11    | d1            | d2            |               |
| 22    |               |               | d4            |

我正在努力解决的部分难题是,似乎至少有这些不同的方法可以实现这一点 a) 多个 Access 查询 b) 带有内联查询的单个 Access 查询(可能吗?) c) VBA代码 d) 在 SQL Server 本身中 e) 其他... 创建和维护它的最简单方法是什么,因为 LookupTable1.Status 值会改变。

【问题讨论】:

  • “LookupTable1.Status 值会改变”是什么意思?为什么 Obj_ID 1 不总是将 A 作为状态值?
  • “LookupTable”是干什么用的?我在想要的结果中看不到任何内容。

标签: sql ms-access


【解决方案1】:

看起来像一个简单的 CROSSTAB 查询:

TRANSFORM Max(Table1.Status_date) AS MaxOfStatus_date
SELECT Table1.FK_ID
FROM Table1
GROUP BY Table1.FK_ID
PIVOT Table1.Status_ID;

如果您希望输出显示状态别名值,首先将两个表连接起来,然后使用状态字段作为 CROSSTAB 中的列标题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2014-03-14
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多