如何合并来自不同表的记录?
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
同一工作簿中有两个工作表具有相同的结构-相同的字段名称。
例如:
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