具有多列的 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];
在交叉表查询中获取多列的最佳方法是什么?我有以下 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];