ms access sql将行转换为列

rxztt3cl  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(528)

我需要一些帮助来转换一个ms-access表,它将数据按行转换为列。创建了一些适合我的场景的示例数据表。我需要把“表1”转换成“表3”。如果可能,使用“表2”来确定水果的列顺序。

我认为这可以使用SQLServer中的pivot选项来完成。如何在access数据库中实现相同的功能?
谢谢。

wwodge7n

wwodge7n1#

列顺序由列标题中的值决定。可以连接水果和订单字段: Order & "-" & Fruit AS OrderFruit .
使用查询设计器生成将水果字段上的表1和表2与该计算字段连接起来的查询,并切换到交叉表以完成。

ccgok5k5

ccgok5k52#

考虑ms access的交叉表查询,它使用 TRANSFORM 以及 PIVOT 条款。这个 IN 列在 PIVOT 指定列的顺序和外观(是否省略)。

TRANSFORM MAX(t1.Export) AS MaxExport
SELECT t1.Country
FROM table1 t1
GROUP BY t1.Country
PIVOT t1.Fruit IN ('Apple', 'Kiwi', 'Mango', 'Grapes', 'Pear')

对于需要的带有数字句点列标题的顺序,只需连接第二个表并连接 Order 以及 Fruit 中的列 PIVOT 条款:

TRANSFORM MAX(t1.Export) AS MaxExport
SELECT t1.Country
FROM table1 t1
INNER JOIN table2 t2
   t1.Fruit = t2.Fruit
GROUP BY t1.Country
PIVOT t2.[Order] & "." & t1.Fruit

相关问题