如何组合来自不同表的记录并使用SQL运行查询?

时间:2016-07-20 07:09:03

标签: sql excel vba excel-vba ado

原始问题不清楚所以我修改了问题并再次询问

原始问题:How to combine records from different tables?

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

例如:

表1

form_title

表2

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

现在我使用ADO在excel-vba中运行sql。没有DBMS。我只是在excel工作表上运行并粘贴。

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

现在我想合并这两个表记录并稍后再选择。

这意味着:

表3

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

然后进行选择(SQL)。

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

能否在SQL或VBA中执行它(我更喜欢在SQL语句中执行它)?

*我更喜欢使用某种SQL技术来执行它。像联盟表这样的东西?但是连接表只加入不同表中的列。现在我想加入行*

更新

正如人们建议使用 select officer ,name ,sum(mkt) from [$table3] group by officer 我试试

union all

它出现SELECT office, name, sum(mkt) FROM( SELECT * FROM [$table1] UNION ALL SELECT * FROM [$table2] ) as table3 GROUP BY officer

2 个答案:

答案 0 :(得分:0)

您可以使用temptable或CTE(公用表表达式)或使用JOINs

不是Temptable:

create table #tablename(columname datatype)

CTE:

with ctename as (select columns from tablename)

JOINS:

select columnname 
       from table1 t1
       left join table2 t2 on t1.commonecolumnname=t2.commoncolumnname

答案 1 :(得分:0)

我认为这可能会对你有所帮助

SELECT Officer, name, sum(mkt) FROM (
SELECT Officer,name,mkt FROM [$table1]
UNION ALL
 SELECT  Officer,name,mkt 
    FROM [$table2]
    ) as table3
GROUP BY officer,name