Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [SQL, firebird] "not in" Operator funktioniert nicht (https://www.delphipraxis.net/96331-%5Bsql-firebird%5D-not-operator-funktioniert-nicht.html)

BlueStarHH 22. Jul 2007 19:18

Datenbank: Firebird • Version: 1.5 • Zugriff über: IBX: TIBQuery

[SQL, firebird] "not in" Operator funktioniert nic
 
Hallo,

ich habe zwei Tabellen:

SQL-Code:
VORGANG
-------
VGNR BRUTTO
1     20
2     13
3     17
4     25
5     11
6     0

BUCHUNG
-------
BNNR VGNR GSNR
1     3     4
2     null 1
3     2     null

Ich möchte nun alle Vorgänge aufgelistet haben, deren Bruttobetrag ungleich 0 ist und die nicht in der Bungstabelle enthalten sind. Dies ist der Fall wenn die Vorgangsnummer (VGNR) aus VORGANG weder im Feld VGNR noch im Feld GSNR der Tabelle BUCHUNG auftritt.

Gewünschtes Ergenbis mit den Beispieldaten:
SQL-Code:
VGNR BRUTTO
5     11
In Firebird wird jedoch kein einziger Datensatz zurückgegeben, wenn ich diesen SQL-Code verwende:

SQL-Code:
select * from Vorgang
where Brutto <> 0
and VgNr not in (select VgNr from Buchung)
and VgNr not in (select GsNr from Buchung)
Wo ist der Fehler? Danke!

mkinzler 22. Jul 2007 19:33

Re: [SQL, firebird] "not in" Operator funktioniert
 
Sollte es nicht:
SQL-Code:
select * from Vorgang
where Brutto <> 0
and VgNr not in (select VgNr from Buchung)
and GsNr not in (select GsNr from Buchung);
heißen?

BlueStarHH 22. Jul 2007 19:35

Re: [SQL, firebird] "not in" Operator funktioniert
 
Zitat:

Zitat von mkinzler
Sollte es nicht:
SQL-Code:
select * from Vorgang
where Brutto <> 0
and VgNr not in (select VgNr from Buchung)
and GsNr not in (select GsNr from Buchung);
heißen?

Nein, die Tabelle Vorgang hat nur die VgNr.

BlueStarHH 22. Jul 2007 19:43

Re: [SQL, firebird] "not in" Operator funktioniert
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anbei eine kleine Test-Datenbank mit obigen Beispieldaten und Tabellen.

mkinzler 22. Jul 2007 19:43

Re: [SQL, firebird] "not in" Operator funktioniert
 
Dann solle deine Abfrage von Buchung ausgehen:
SQL-Code:
select
    v.*
from
  Buchung b join Vorgang v on v.VgNr not b.VgNr and v.VgNr not b.GsNr;

BlueStarHH 22. Jul 2007 19:49

Re: [SQL, firebird] "not in" Operator funktioniert
 
Zitat:

Zitat von mkinzler
Dann solle deine Abfrage von Buchung ausgehen:
SQL-Code:
select
    v.*
from
  Buchung b join Vorgang v on v.VgNr not **b**.VgNr and v.VgNr not b.GsNr;

Firebird sagt: Token unknown b (An der Stelle der Sterne. s.o.)

mkinzler 22. Jul 2007 19:59

Re: [SQL, firebird] "not in" Operator funktioniert
 
Die Datenbankdatei kann ich leider nicht lesen.

BlueStarHH 22. Jul 2007 20:02

Re: [SQL, firebird] "not in" Operator funktioniert
 
Zitat:

Zitat von mkinzler
Die Datenbankdatei kann ich leider nicht lesen.

Was für eine Fehlermeldung kommt? Ist die ZIP-Datei defekt? Oder die FDB? Ich kann sie mit dem IB Expert öffnen. Hast Du auch die TEST*DB*.zip? Die Datei hat nur einen Download (meiner). Es kann sein, dass Du die TEST.zip hast, die konnte ich nicht vollständig hochladen und hab Sie durch die neue Datei ausgetauscht.

mkinzler 22. Jul 2007 20:06

Re: [SQL, firebird] "not in" Operator funktioniert
 
Ich kann sie entpacken, beim Öffnen kommt dann der Fehler, dass die Datei defekt sei. Häng mal das Create-Skript an.
[Edit: Noch mal heruntergeladen, gleicher Fehler]

BlueStarHH 22. Jul 2007 20:11

Re: [SQL, firebird] "not in" Operator funktioniert
 
Liste der Anhänge anzeigen (Anzahl: 1)
Create-Skript der Datenbank mit Beispieldaten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz