2016-04-15 3 views
0

Grundsätzlich hinzufügen Ich möchte die Ergebnisse aus Tabelle 2 in einer neuen Tabelle, wie unten hinzufügen/kombinieren:UNION Verwendung auf Spaltenwert mit Kriterien

enter image description here

(aufaddieren Werte, wenn colA & colB einstimmt, Ursprungswert aus anderen Gründen)

ich habe versucht, mit folgenden Abfrage nach oben kommen (in Access VBA), aber es gibt mehr als ich will:

SELECT table1.A, table1.B, table1.C 
FROM table1, table2 
WHERE table1.A <> table2.A 
UNION 
SELECT table1.A, table1.B, table1.C+table2.C AS SUM 
FROM table1, table2 
WHERE table1.A = table2.A AND table1.B = table2.B 
UNION 
SELECT table2.A, table2.B, table2.C 
FROM table1, table2 
WHERE table1.A <> table2.A; 

obwohl es mit vlookup in Excel einfach gemacht werden kann; Es ist nicht so einfach im Zugriff. Ist UNION sogar richtig? Auch ich würde gerne bei der Abfrage, statt mit Datensatz, wo die Herkunft Daten haben 10000 + Zeilen

Antwort

1
SELECT A, B, SUM(C) 
FROM ( 
     SELECT A, B, C 
     FROM Table1 
     UNION ALL 
     SELECT A, B, C 
     FROM Table2 
    ) T 
GROUP BY A, B 
ORDER BY A, B 
+0

, die war schnell und perfekt! Vielen Dank! Ich verstehe den UNION ALL Teil und von, aber wie ergibt das Auswählen von Spalten aus UNION das Ergebnis? Was macht das T? (kann Antwort nicht annehmen, bis 10 Minuten nach bekannt gegeben) – Alex

+0

Nevermind, fand ich heraus, warum es jetzt funktioniert, danke wieder – Alex

+1

'UNION' wird verdoppeln verworfen. 'UNION ALL 'hält Duplikate und du kannst' SUM '. 'T' ist nur ein Alias ​​für die Unterabfrage, also' FROM' behandelt es wie eine Tabelle –