-
Hallo KM,
das funktioniert, das heißt somit, dass ich für etwaige Einschränkungen bzw. Prüfungen diese an der/den Verknüpfungen vornehmen muss.
Wie sieht denn zur Alternative die Verknüpfung der Dateien aus, wenn ich auf meine WHERE-Klausel nicht verzichten möchte?
Liebe Grüße
MiMarkow
-
... bei outer joins werden die "ergänzten" Sätze (das sind die, die kein Pendant haben) mit Null Values im Resultset aufgenommen. Für null gilt eine dreiwertige Logik: Alle Vergleiche mit Null liefern false, null is also weder gleich ungleich, größer oder kleiner als jeder andere Wert. Die einzige Operation mit null, die TRUE liefert, ist die spezielle Abfrage ISNULL. Wenn ich also einen Vergleich in dei Where Klausel schieben will, muss ich entsprechend mit IS NOT NULL sicherstellen, dass da nix wegdüst. In der Join Klausel ist das einfacher und eleganter.
In manchen Fällen kann man da auch im View Layer die Nullfelder mit coalesce in blanks oder 0 tauschen. (wenn's die fachliche Logik erlaubt)
D*B
-
Warum willst Du denn so sehr an der WHERE-Klausel festhalten? Wenn Du nur INNER JOINs hast, dann kannst Du ruhig die WHERE-Klausel verwenden. Aber wenn auch andere Joins vorkommen, dann besteht die Gefahr, dass Dir Sätze durch die Lappen gehen.
Gruß,
KM
-
Ich hatte bis dato noch nicht so viel mit SQL zu tun und wenn, dann eher über die einfache Schiene mittels strqm, meistens aber mit wrkqry, daher meine Anfrage und wie heißt es so schön im Leben, es führen immer mehrere Wege nach Rom = Lösung!!
Und da man ja auch niemals auslernt, hatte ich diese Anfrage gleich nachgeschoben!!
Das wichtigste aber ist, dass ihr mir alle ganz super toll geholfen habt und ich eine funktioniernde SQL-Abfrage habe - vielen lieben Dank!!!
Liebe Grüße
MiMarkow
-
Von der Logik und dem SQL-Standard her ist die alte Join-Logik eben veraltet da sie eher kompliziert wird.
Sobald man nämlich in einer Where-Klausel ein Feld auf einen Nicht-NULL-Wert vergleicht, optimiert SQL automatisch auf einen Inner Join.
Die on-Klausel ist annähernd mit einer Where-Klausel vergleichbar, aber nicht identisch. Einiges geht, manches eben nicht, z.B. scalare Subselect. Man kann aber durchaus einfache skalare Berechnungen durchführen und mit diesem Ergebnis vergleichen.
In die On-Klausel gehört erstens die Beziehung und ggf. zweitens eine weitere Einschränkung die NULL-Ergebnisse liefern darf.
In die Where-Klausel gehören dann die tatsächlichen Filter auf das Gesamtergebnis wobei eben Left-Joins nicht mehr weiter gefiltert werden dürfen, da sie sonst wieder zu Inner Joins werden da, wie Dieter schon beschreibt ein Vergleich mit NULL und einem Wert nie TRUE wird.
-
Hallo Herr Fuerchau,
vielen Dank für Ihre detaillierte Beschreibung - das hilft mir sehr weiter!!
Similar Threads
-
By _MG_ in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 14-12-16, 15:45
-
By AK1 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 26-10-16, 12:59
-
By Robi in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 07-01-16, 07:40
-
By mott in forum IBM i Hauptforum
Antworten: 13
Letzter Beitrag: 16-12-15, 15:55
-
By labm in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 22-04-14, 14:30
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks