在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值将更改。
答案 0 :(得分: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中的列标题。