WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Access Abfrage (http://www.wcm.at/forum/showthread.php?t=185515)

Valk 15.02.2006 10:52

Access Abfrage
 
Hallo, ich bin ein ziemlicher Access Anfänger darum bitte nicht lachen falls es simpel ist!:D

Ich habe 2 Tabellen. In beiden Stehen zb Rechnungsnummern. Jetzt sollte ich als Ergebniss eine Liste haben die mir zeigt welche Rechnungsnummern nicht in beiden Tabellen enthalten sind. Wie kann ich das am einfachsten und schnellsten lösen?
Muss ich dafür wirklich eine If Formel verwenden? Wenn ja wie geht die?:confused:

Danke schon mal!

T.dot 15.02.2006 11:15

Ähnliches Problem, ähnliche Lösung

Dh. für die eine Tabelle:
SELECT Rechnungsnummer FROM Tabelle1 WHERE Rechnungsnummer NOT IN (SELECT Rechnungsnummer FROM Tabelle2)

und für die andere Tabelle:
SELECT Rechnungsnummer FROM Tabelle2 WHERE Rechnungsnummer NOT IN (SELECT Rechnungsnummer FROM Tabelle1)

Wenn du jetzt die beiden Abfragen kombinieren willst:

SELECT Rechnungsnummer, 'nur in 1. Tabelle' as Information FROM Tabelle1 WHERE Rechnungsnummer NOT IN (SELECT Rechnungsnummer FROM Tabelle2)
UNION ALL SELECT Rechnungsnummer, 'nur in 2. Tabelle' as Information FROM Tabelle2 WHERE Rechnungsnummer NOT IN (SELECT Rechnungsnummer FROM Tabelle1)

viel Spaß, mfg T.

Ps: ich habs ausn Kopf getippt und ned getestet

Valk 15.02.2006 11:20

Danke für die Hilfe werde es ausprobieren!
Kann ich diese Select abfrage einfach in das Feld Kriterien eingeben und dann müsste es funktionieren? Oder hab ich das falsch verstanden...

T.dot 15.02.2006 13:00

Am einfachsten: neue Abfrage -> Entwurfsansicht -> Umschalten auf SQL-Ansicht -> das ganze Sql-Statement reinkopieren.

Zweite Variante: du stellst die Abfrage ganz normal in der Entwurfsansicht zusammen und schreibst dann im Kriterium für die Rechnungsnummer "NOT IN (SELECT Rechnungsnummer FROM Tabelle2)" rein. Bzw. heißt es im deutschen Access wohl "nicht in (SELECT ...)".

Wenn du die letzte Abfrage, die die beiden kombiniert verwenden willst, kannst du sie nur direkt in SQL reinkopieren, sonst checkt Access das nicht.

Hoffe das war halbwegs verständlich ;)

mfg Thomas

Valk 15.02.2006 15:17

Super danke es funktioniert!:D

Hussl 15.02.2006 15:34

Ich glaube, sub-selects werden bei vielen Datensätzen ziemlich langsam. Ich würde einen Join bevorzugen:

Alle aus Tabelle1, die in Tabelle 2 nicht vorhanden sind:
Code:

SELECT Tabelle1.*
FROM Tabelle1 LEFT JOIN Tabelle2 ON Tabelle1.code = Tabelle2.code
WHERE Tabelle2.code Is Null;



Alle Zeitangaben in WEZ +2. Es ist jetzt 07:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag