Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi sql Abfrage <>Ergebnis aus anderer Abfrage (https://www.delphipraxis.net/101953-sql-abfrage-ergebnis-aus-anderer-abfrage.html)

oldie 21. Okt 2007 11:21

Datenbank: Paradox • Version: 7 • Zugriff über: SQL

sql Abfrage <>Ergebnis aus anderer Abfrage
 
Hallo

wie bekomme ich ein Ergebnis für folgende Aufgabenstellung.

Mit folgender Sql-Abfrage bekomme ich das Ergebnis aller Artikel von Tabelle2 die in Tabelle1 zugeordnet wurden.

Delphi-Quellcode:
SELECT P.Nummer FROM Tabelle1 T, Tabelle2 P WHERE T.Nummer=P.Nummer

Ich möchte aber alle Artikel die nicht zugeordnet sind.

Delphi-Quellcode:
SELECT P.Nummer FROM Tabelle1 T, Tabelle2 P WHERE T.Nummer<>P.Nummer
Ergebnis alle Nummern mehrfach

Delphi-Quellcode:
SELECT P.Nummer FROM Tabelle1 T, Tabelle2 P WHERE P.Nummer<> (SELECT P.Nummer FROM Tabelle1 T, Tabelle2 P WHERE T.Nummer=P.Nummer)
ergibt Fehler "single row subquery produced more than one row"

Ich habe es auch schon mit "not" statt "<>" versucht

hat einer einen Tipp wie das geht?

Gruß
Oldie

mkinzler 21. Okt 2007 11:23

Re: sql Abfrage <>Ergebnis aus anderer Abfrage
 
SQL-Code:
SELECT P.Nummer FROM Tabelle1 T, Tabelle2 P WHERE P.Nummer not in (SELECT P.Nummer FROM Tabelle1 T, Tabelle2 P WHERE T.Nummer=P.Nummer)

DeddyH 21. Okt 2007 11:27

Re: sql Abfrage <>Ergebnis aus anderer Abfrage
 
Oder so
SQL-Code:
SELECT P.Nummer
FROM Tabelle1 P
LEFT JOIN Tabelle2 T ON P.Nummer = T.Nummer
WHERE T.Nummer IS NULL

marabu 21. Okt 2007 11:57

Re: sql Abfrage <>Ergebnis aus anderer Abfrage
 
Einen hätte ich noch:

SQL-Code:
SELECT P.Nummer FROM Tabelle2 P
WHERE P.Nummer NOT IN (SELECT T.Nummer FROM Tabelle1 T)
Grüße vom marabu

oldie 21. Okt 2007 12:39

Re: sql Abfrage <>Ergebnis aus anderer Abfrage
 
Hallo

ich habe alle drei Versionen getestet.

Funktionieren gut

@mkinzler: ich habe noch ein "distinct" eingefügt sonst sind alle mehrfach vorhanden.

Delphi-Quellcode:
SELECT distinct P.Nummer FROM Tabelle1 T, Tabelle2 P WHERE P.Nummer not in (SELECT P.Nummer FROM Tabelle1 T, Tabelle2 P WHERE T.Nummer=P.Nummer)
Danke an alle


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr.

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