如何合并来自不同表的记录?

How to combine records from different tables?

同一工作簿中有两个工作表具有相同的结构-相同的字段名称。

例如:

Table 1

- Officer  name   mkt 
 - s15     peter  15
 - s17     mary   18
 - S32     tom    42
 - S32     tom    89

Table 2

- Officer  name   mkt 
 - s56     jason  55
 - s31     alex   34
 - S54     gee    45

现在我正在使用 ADO 来 运行 excel-vba 中的 sql。

select officer ,name ,sum(mkt) from [$table1]

现在我想合并这 2 table 条记录和 select 以后。

这意味着:

Table 3

- Officer  name   mkt 
 - s15     peter  15
 - s17     mary   18
 - S32     tom    42
 - S32     tom    89
 - s56     jason  55
 - s31     alex   34
 - S54     gee    45

然后稍后制作 selection(SQL) .

  select officer ,name ,sum(mkt) from [$table3]

是否可以在SQL或VBA中执行(我更喜欢在SQL语句中执行)?

*我更喜欢使用某项技术 SQL 来执行它。像 join table 这样的东西?但是加入 table 只加入不同的列 tables.Now 我想加入行 *

您可以使用普通的table表达式将table合并为一个,然后进行合计。我正在使用 SET NOCOUNT ON; ,因为如果我省略了这个,我之前在 excel 中遇到过问题。两个 table 之间的完全外部连接也可以。

SET NOCOUNT ON;

WITH CTE AS
(
    SELECT *
    FROM [$table1]
    UNION ALL
    SELECT *
    FROM [$table2]
)

SELECT office, name, sum(mkt)
FROM CTE
GROUP BY office, name

你也可以在没有 CTE 的情况下尝试:

SELECT office, name, sum(mkt)
FROM(
    SELECT *
    FROM [$table1]
    UNION ALL
    SELECT *
    FROM [$table2]
)
GROUP BY office, name
    select officer ,name ,sum(mkt) from table1
    union all
    select officer ,name ,sum(mkt) from table2