具有多列的 MS Access 交叉表查询?

MS Access Crosstab query with multiple columns?

在交叉表查询中获取多列的最佳方法是什么?我有以下 table:

ID  Name    Topic   Date
123 John    Define  9/30/2015
123 John    Measure 10/30/2015
123 John    Analyze 11/30/2015
321 Mary    Measure 8/28/2015
321 Mary    Define  7/15/2015
321 Mary    Define  6/15/2015

这是我正在寻找的结果:

ID  Name    Define  Define Date Measure Measure Date    Analyze Analyze Date
123 John       1      9/30/2015   1     10/30/2015        1     11/30/2015
321 Mary       2      7/15/2015   1     8/28/2015       

我创建了一个交叉表查询来旋转主题并在列中计数,但我还没有想出如何在计数旁边为日期添加另一列。

我可以有多个不同日期的主题,但我会使用 Max 来获取最新日期。谢谢!

只需 运行 在 GROUP BY 查询中进行条件聚合以转置数据。此处的交叉表不会有帮助,因为您不想将行值转置为列。相反,您想根据行值定义列。

SELECT [ID], [Name], 
       Count(IIF(Topic='Define', Topic, Null)) As [Define], 
       Max(IIF(Topic='Define', [Date], Null)) As [Define Date], 
       Count(IIF(Topic='Measure', Topic, Null)) As [Measure],
       Max(IIF(Topic='Measure', [Date], Null)) As [Measure Date], 
       Count(IIF(Topic='Analyze', Topic, Null)) As [Analyze],
       Max(IIF(Topic='Analyze', [Date], Null)) As [Analyze Date]
FROM TableName
GROUP BY [ID], [Name];