![]() |
Datenbank: access • Version: 2000 • Zugriff über: ADO
mal wieder ne SQL-Abfrage
Hallo. Ich hänge mal wieder an einer SQL-Abfrage. Ich weiß auch gar nicht, ob das was ich mir wünsche in einer Abfrage möglich ist, aber schön wäre es.
Folgendes ist mein Problem. Ich habe zwei Tabellen. Akte und Vorgang. mit folgenden Feldern Akte.ID, Akte.Bemerkung Vorgang.ID, Vorgang.Akte, Vorgang.Typ, Vorgang.Inhalt Zu jeder Akte gibt es mehrere Vorgänge. In den Vorgängen wird dan die jeweilig Akten-ID in das Feld Akte eingetragen. Was ich möchte ist folgendes: Alle Vorgänge von allen Akten, bei denen kein Vorgang eines Bestimmten Typs vorhanden ist. Also wenn in einer Akte z.B. ein Vorgang vom Typ 'Ende' ist, soll keiner der Vorgänge dieser Akte mit ausgegeben werden. was ich schonmal probiert habe ist folgendes, aber das Problem ist, daß bei der Unterabfrage mehr wie ein Datensatz zurückgegeben wird. (genau das will ich ja auch)
Code:
SELECT Akte.ID, Akte.Bemerkung, Vorgang.ID, Vorgang.Akte, Vorgang.Typ, Vorgang.Inhalt
FROM Akte INNER JOIN Vorgang ON Akte.ID = Vorgang.Akte where Akte.ID <> (SELECT Akte.ID FROM Akte INNER JOIN Vorgang ON Akte.ID = Vorgang.Akte where Vorgang.Typ <> 'Ende'); Bin für jeden Tip dankbar. Gruß tr909 *edit* Sollte natürlich auch Vorgang.Typ heißen. Funzt aber trotzdem nicht |
Re: mal wieder ne SQL-Abfrage
HI!
Keine Ahnung, obs daran liegt, aber du schreibst immer Akte.xxx oder Vorgang.xxx, nur beim letzten steht einfach nur Typ. Ciao Frederic |
Re: mal wieder ne SQL-Abfrage
Hi, probiers mal anstatt mit
SQL-Code:
lieber mit
...where Akte.ID <> (SELECT ...
SQL-Code:
Gruß
...where Akte.ID not in (SELECT ...
trashcandesign |
Re: mal wieder ne SQL-Abfrage
Außerdem lässt sich das bestimmt noch etwas vereinfachen:
SQL-Code:
Grüße vom marabu
SELECT ...
FROM vorgaenge v, akten a WHERE v.akten_id = a.id AND a.id not in ( SELECT akten_id FROM vorgaenge sub WHERE sub.typ = :typ ) |
Re: mal wieder ne SQL-Abfrage
Ja, das mit dem not in ist es gewesen. Macht ja auch Sinn bei einer Ergebiss-Menge.
Die Version von Marabu ist auch noch um einiges schneller als meine Variante. Habe meine nach ca 10. Minuten unter Vollast abgebrochen, da ich bis dahin noch kein Resultat hatte, bei der anderen hab ich aber schon nach kurzer Zeit was auf dem Schirm gehabt. Tausend Dank. *EDIT* Habe gerade gemerkt, das die Geschwindigkeitssteigerung nur direkt in Access aufgetreten ist, bzw. Da schon im vorraus Ein "Teilergebnis" angezeigt wird. mein dataset ist derweil noch stark beschäftigt. Aber Hauptsache ist ich komme an die Daten ;) Gruß tr909 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz