MS Access 中的透视查询

Posted

技术标签:

【中文标题】MS Access 中的透视查询【英文标题】:Pivot Query in MS Access 【发布时间】:2020-10-17 09:22:09 【问题描述】:

我在 Access 表中有以下数据:

ID    Name      CAT
1     Bill      Red
1     Bill      Yellow
1     Bill      Green
1     Bill      Orange
2     Ted       Purple
2     Ted       White
3     Alice     Indigo
3     Alice     Violet
3     Alice     Red

我想输出如下:

ID    Cat1    Cat2    Cat3    Cat4
1     Red     Yellow  Green   Orange
2     Purple  White        
3     Indigo  Violet  Red    

我可以为此使用枢轴吗?如果是这样,有人可以建议一个合适的查询吗?非常感谢。

【问题讨论】:

【参考方案1】:

考虑:

TRANSFORM First(Data.Cat) AS FirstOfCat
SELECT Data.ID, Data.Name
FROM Data
GROUP BY Data.ID, Data.Name
PIVOT "Cat" & DCount("*","Data","ID=" & [ID] & " AND Cat<'" & [Cat] & "'")+1;

或者如果有一个唯一的记录标识符字段 - 自动编号应该服务:

TRANSFORM First(Data.Cat) AS FirstOfCat
SELECT Data.ID, Data.Name
FROM Data
GROUP BY Data.ID, Data.Name
PIVOT "Cat" & DCount("*","Data","ID=" & [ID] & " AND ID_PK<" & [ID_PK])+1;

【讨论】:

以上是关于MS Access 中的透视查询的主要内容,如果未能解决你的问题,请参考以下文章

基于包含子查询的查询的 ms-access 交叉表查询

使用 MS Access Query 反透视或转换数据

查询不会更新子窗体 MS-Access 中的表

使用 c# 和 oledb 查询更新 Ms-Access 2010 中的列值

Ms-access 中的一个查询

如何在 Excel 中使用带查询的 Access 数据库作为数据透视表