如何将具有多行的客户列表和详细信息更改为具有类别的单个帐户行

How do I change a list of customers with multiple lines, and details into a single account line with categories

例子Table,转这个

CustID CustName SalesRepName SalesRepSpecialty
1 ACME Corp Steve P Servers
1 ACME Corp Susy Q Network
1 ACME Corp John D Storage
2 MicroStuff Auntie Irma Network
3 O-Rickle Daddy Larry Servers

然后把它变成

CustId CustName Server Network Storage
1 ACME Corp Steve P Suzy Q John D
2 MicroStuff Auntie Irma
3 O-Rickle Daddy Larry

这可以在 MS Access 中完成吗?

您可以使用 Crosstab Query Wizard in Access to create a TRANSFORM statement (Microsoft Access SQL):

TRANSFORM Max(Turn.SalesRepName) AS MaxOfSalesRepName
SELECT Turn.CustID, Turn.CustName
FROM Turn
GROUP BY Turn.CustID, Turn.CustName
PIVOT Turn.SalesRepSpecialty;

要使列的顺序正确,您可以手动附加此子句(在 ; 之前):

IN (Servers, Network, Storage)

这还有一个好处,即使相应的 SalesRepSpecialty 缺失,也会创建这些列;但是,不会自动附加新值。如果您基于此查询创建访问报告,那么您需要一组固定的列才能为它们添加字段(除非您在 VBA 中执行一些复杂的动态操作)。