如何转换类似于交叉表的 Access 数据

问题描述

我想要显示类似于交叉表查询的数据,但不完全相同。我拥有的数据看起来像这样,每个数据段位于不同的行:

Data on each row

我希望将数据合并为每个客户端的所有数据,如下所示:

Data all on one row

我已尝试使用交叉表查询进行此操作,但我不想对任何字段求和,而且每个产品都有多个数据点(类型、名称、购买日期等)。

非常感谢任何帮助!

解决方法

不是一个非常实用的数据展示,但它是可能的。需要一个唯一标识符字段 - 自动编号应该服务 - 我称之为 RID。考虑:

查询 1:

SELECT RID,ID,FirstName,LastName,Dept,ProductType AS Data,"PT" AS Cat FROM Table1
UNION SELECT RID,ProductName,"PN" FROM Table1
UNION SELECT RID,PurchaseDate,"PD" FROM Table1
UNION SELECT RID,PurchaseCost,"PC" FROM Table1
UNION SELECT RID,DeliveryDate,"DD" FROM Table1;

查询 2:

TRANSFORM First(Query1.Data) AS FirstOfData
SELECT Query1.ID,Query1.FirstName,Query1.LastName,Query1.Dept
FROM Query1
GROUP BY Query1.ID,Query1.Dept
PIVOT DCount("*","Query1","ID=" & [ID] & " AND Cat='" & [Cat] & "' AND RID<" & [RID])+1 & [Cat];

但是,有 255 个字段的限制,因此可能会有更多的数据无法处理。