【问题标题】:Create a new table based on existing table基于现有表创建新表
【发布时间】:2015-01-30 21:57:55
【问题描述】:

我正在尝试在 Access 2003 中编写一个基于现有表创建新表的查询。 我正在使用制作表查询。

之前:

NAME  A_1   A_2  B_1    B_2
X      1    2    3      4
Y      5    6    7      8

之后

NAME    Section Value1  Value2  
X          A    1        2  
X          B    3        4  
Y          A    5        6  
Y          B    7        8  

【问题讨论】:

    标签: sql ms-access ms-access-2003


    【解决方案1】:

    创建一个SELECT 查询,从现有表的每一行中检索 A_1A_2 值:

    SELECT e1.NAME, 'A' AS [Section], e1.A_1 AS Value1, e1.A_2 AS Value2
    FROM tblExisting AS e1
    

    然后创建一个类似的查询来检索 B_1B_2 值,以及 UNION 这两个 SELECT 语句:

    SELECT e1.NAME, 'A' AS [Section], e1.A_1 AS Value1, e1.A_2 AS Value2
    FROM tblExisting AS e1
    UNION ALL
    SELECT e2.NAME, 'B' AS [Section], e2.B_1 AS Value1, e2.B_2 AS Value2
    FROM tblExisting AS e2
    

    从那里,您可以基于UNION 查询构建生成表查询:

    SELECT sub.*
        INTO tblNew
    FROM
        (
            SELECT e1.NAME, 'A' AS [Section], e1.A_1 AS Value1, e1.A_2 AS Value2
            FROM tblExisting AS e1
            UNION ALL
            SELECT e2.NAME, 'B' AS [Section], e2.B_1 AS Value1, e2.B_2 AS Value2
            FROM tblExisting AS e2
        ) AS sub;
    

    【讨论】:

      猜你喜欢
      • 2015-11-28
      • 2011-12-20
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2018-06-05
      • 1970-01-01
      • 2020-12-10
      相关资源
      最近更新 更多