访问-检索状态和日期难题

时间:2018-08-03 18:47:07

标签: sql ms-access

在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值将更改。

1 个答案:

答案 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中的列标题。