我在两个表中有“一对多”关系:
Table "products" contains: product_id, product_descr
Table "packing" contains: product_id, package_id, package_desc
Run Code Online (Sandbox Code Playgroud)
一种产品通常有多个包装。我想在 Microsoft Access 中创建一个查询,在其中我在一行中获取一个产品的所有包选项:
product_id package_id1 package_desc1 packageid2 package_desc2 packageid_n package desc_n
Run Code Online (Sandbox Code Playgroud)
产品确实有不同数量的包装,它不是一个固定的数量。
我可以通过三个步骤来实现您的查询。假设您的表值类似于下面列出的值:
步骤1:在SQL视图中粘贴此查询并将其保存为part1,这是为了package_id
转置
TRANSFORM First([packing].package_id)
SELECT [packing].[product_id]
FROM packing
GROUP BY [packing].[product_id]
PIVOT [packing].package_id;
Run Code Online (Sandbox Code Playgroud)步骤2:在SQL视图中粘贴此查询并将其另存为part2,这是为了package_desc
转置
TRANSFORM First(packing.package_desc)
SELECT packing.product_id
FROM packing
GROUP BY packing.product_id
PIVOT packing.package_id;
Run Code Online (Sandbox Code Playgroud)第 3 步:根据上面的两个查询连接product_id
以获得结果