如何将具有多行的客户列表和详细信息更改为具有类别的单个帐户行
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 中执行一些复杂的动态操作)。
例子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 中执行一些复杂的动态操作)。