将2个表中的数据与查询相结合

时间:2013-10-07 19:25:47

标签: ms-access ms-access-2003

我正在尝试在Access中执行此操作。

我有两张桌子:名为2012& 2013 两个表都具有相同的字段:年份,销售,发票,部件号,说明

我需要一份最终报告(查询),为所有零件编号添加销售和发票。例如;零件号123在2012年有1个销售,2013年有3个销售,结果将是4个销售。我需要销售和发票领域的总和。

表有不同的记录数。需要显示所有记录。

表1示例

Year Sales Invoices Part Number Description
2012     0        0        1234 HAT
2012     3        3        5678 JACKET

表2示例

Year  Sales Invoices Part Number Description
2013     17       17        1234 HAT
2013      1        1        5678 JACKET

查询示例

Sales Invoices Part Number Description
17          17        1234 HAT
 4           4        5678 JACKET

1 个答案:

答案 0 :(得分:2)

你需要做两件事:

  1. 使用UNION查询合并来自2个表格的数据。
  2. 创建聚合(GROUP BY)查询以计算UNION查询返回的结果的总和。
  3. 首先处理UNION查询。

    SELECT
        t1.Sales,
        t1.Invoices,
        t1.[Part Number],
        t1.Description
    FROM [TABLE 1] AS t1
    UNION ALL
    SELECT
        t2.Sales,
        t2.Invoices,
        t2.[Part Number],
        t2.Description
    FROM [TABLE 2] AS t2
    

    根据需要调整(未经测试的SQL)。然后将其用作GROUP BY查询的子查询数据源。

    SELECT
        sub.[Part Number],
        sub.Description,
        Sum(sub.Sales) AS SumOfSales,
        Sum(sub.Invoices) AS SumOfInvoices
    FROM
        (
            SELECT
                t1.Sales,
                t1.Invoices,
                t1.[Part Number],
                t1.Description
            FROM [TABLE 1] AS t1
            UNION ALL
            SELECT
                t2.Sales,
                t2.Invoices,
                t2.[Part Number],
                t2.Description
            FROM [TABLE 2] AS t2
        ) AS sub
    GROUP BY
        sub.[Part Number],
        sub.Description