UNION's mit Bedingung(en) kombinieren

16/02/2010 - 11:21 von Fred Aurich | Report spam
Hi!

Ich habe 3 Select-Abfragen (Select1..3).
2 Select-Abfragen habe ich mit UNION "zusammengefasst"
Select2
UNION
Select3

Select1 bildet so zu sagen, eine Stamm-Menge. Ich möchte nun Select1 mit
Select2 und Select3 mit UNION's verbinden. Es sollen aber nur die Datensàtze
von Select1 hinzugefügt werden, die (mit den Schlüsselfeldern) nicht schon in
Select2 UNION Select3 enthalten sind. Wie kann ich eine Bedingung für UNION
definieren???

Select2
UNION
Select3
UNION mit Bedingung
Select1

Fred.
 

Lesen sie die antworten

#1 Stefan Hoffmann
16/02/2010 - 12:40 | Warnen spam
hallo Fred,

On 16.02.2010 11:21, Fred Aurich wrote:
Select1 bildet so zu sagen, eine Stamm-Menge. Ich möchte nun Select1 mit
Select2 und Select3 mit UNION's verbinden. Es sollen aber nur die Datensàtze
von Select1 hinzugefügt werden, die (mit den Schlüsselfeldern) nicht schon in
Select2 UNION Select3 enthalten sind. Wie kann ich eine Bedingung für UNION
definieren???


http://msdn.microsoft.com/en-us/library/aa140015(office.10).aspx

UNION und UNION ALL

Wenn es nur um einen Abgleich von Kandiatenschlüsseln geht, bleibt nur
eine Schachtelung mit WHERE NOT EXIST übrig:

Query1:
Select2 UNION ALL Select3

Query2:
SELECT * FROM Select1 S1 WHERE NOT EXISTS
(
SELECT 1 FROM Query1 Q1 WHERE Q1.schluessel = S1.Schluessel
)
UNION ALL
Query1

Der WHERE NOT EXIST kann gegebenfalls durch einen entsprechenden OUTER
JOIN ersetzt werden.


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen