交叉表进入普通表

时间:2012-10-17 09:08:23

标签: sql sql-server ms-access

我每月从Excel表中获取数据,需要将数据导入Access表,与excel表相同。然后我需要将Access表(输入表)转换为Normal Access表(输出表)...

请提供建议

  1. 如何在访问中创建动态输入表..因为新列可以在Excel工作表中添加或删除(例如:201211)
  2. 如何将输入表转换为访问中的输出表。
  3. 输入表:(列名:产品|位置| 201209 | 201210)

    Product | Location | 201209 | 201210 
    
    X       | DK       | 10     | 12
    y       | DK       | 10     | 12    
    

    输出表:

    Product | Location | Date  | Quantity 
    
    X       | DK       |201209 | 10
    X       | DK       |201209 | 12
    Y       | DK       |201210 | 10
    Y       | DK       |201210 | 12
    

    我的输入表包含更多列(例如:201208,201209,201210 ....... 201402)

1 个答案:

答案 0 :(得分:1)

您可以通过以下查询获得所需的输出:

Select Product, Location, '201209' as [Date], Table.[201209] as Quantity from Table
UNION
Select Product, Location, '201210' as [Date], Table.[201210] as Quantity from Table

您提到您的列名可能会更改。您可以通过创建一个查看TableDef的VBA子例程来解决这个问题,并为所有列构建一个SQL查询,然后将记录插入到表中。