2016-07-20 27 views
0

Die ursprüngliche Frage ist nicht klar, so dass ich die Frage ändern und wieder fragenWie Datensätze aus verschiedenen Tabellen kombinieren und die Abfrage mit SQL ausführen?

ursprüngliche Frage: How to combine records from different tables?


Es gibt zwei Arbeitsblätter in derselben Arbeitsmappe, die die gleiche Struktur-gleiche Feldnamen haben.

zum Beispiel:

Tabelle 1

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

Tabelle 2

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

Jetzt habe ich ADO bin mit dem SQL in Excel-vba.There ist kein DBMS .Ich laufen einfach ausführen und auf Excel-Arbeitsblatt einfügen.

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

Jetzt möchte ich diese 2 Tabellen Datensätze kombinieren und später auswählen.

Das bedeutet:

Tabelle 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 

Dann später die Auswahl treffen (SQL).

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

Ist es in der Lage es in SQL oder VBA ausführen (i bevorzugen es in SQL-Anweisung ausführen)?

* Ich bevorzuge die Verwendung von STH SQL-Technik, um es durchzuführen. Etwas wie beitreten Tisch? Aber Join-Tabelle nur die Spalten in verschiedenen beitreten tables.Now I Reihen anschließen möchten *

Update

Da die Menschen zu verwenden, legen nahe, union all ich versuche

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

es tritt from-clause error

Antwort

0

ich denke, das Ihnen helfen kann,

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 
0

Sie können temptable oder CTE (common table expression) verwenden oder durch JOINs

Tempta ble:

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