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

时间:2016-07-19 07:45:24

标签: sql excel vba excel-vba ado

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

例如:

表1

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

表2

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

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

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

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

这意味着:

表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

然后进行选择(SQL)。

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

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

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

2 个答案:

答案 0 :(得分:0)

您可以使用公用表表达式将表合并为一个表,然后执行总和。我使用<html> <body> <% String name=request.getParameter("uname"); out.print("Welcome "+name); session.setAttribute("user",name); <a href="second.jsp">second jsp page</a> //THIS SHOULD BE OUTSIDE SCRIPTLET CODE %> <a href="second.jsp">second jsp page</a> //PUT IT HERE </body> </html> ,因为我之前在excel中遇到过问题,如果我省略了这个问题。两个表之间的完全外连接也可以。

 SET NOCOUNT ON; 

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

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

答案 1 :(得分:0)

    select officer ,name ,sum(mkt) from table1
    union all
    select officer ,name ,sum(mkt) from table2