问题描述
我想要显示类似于交叉表查询的数据,但不完全相同。我拥有的数据看起来像这样,每个数据段位于不同的行:
我希望将数据合并为每个客户端的所有数据,如下所示:
我已尝试使用交叉表查询进行此操作,但我不想对任何字段求和,而且每个产品都有多个数据点(类型、名称、购买日期等)。
非常感谢任何帮助!
解决方法
不是一个非常实用的数据展示,但它是可能的。需要一个唯一标识符字段 - 自动编号应该服务 - 我称之为 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 个字段的限制,因此可能会有更多的数据无法处理。