-
 Zitat von Fuerchau
Auswahl "2=Mit Primärdatei gleiche Sätze" ist ein INNER JOIN !
Einspruch!!
Verknüpfungsart 1 (=gleiche Sätze):
ist ein INNER JOIN
Verknüpfungsart 2 (= mit Primärdatei gleiche Sätze)
ist ein LEFT OUTER JOIN
Verknüpfungsart 3 (= mit Primärdatei ungleiche Sätze)
ist ein OUTER JOIN
Ich kenne das Tool zwar nicht, aber wenn es die Verknüpfungsart 2 nicht mit LEFT OUTER JOIN übersetzt, ist es keine 100% Umsetzung.
Abgesehen davon, werden im SQL Felder von erfolglosen LEFT OUTER Joins mit NULL zurückgegeben, im Query mit dem Defaultwert. D.h. das ev. Abfragen anders reagieren können und 2. das Schlüsselwort VALUE (= COALESCE) im Query für diese Fälle unbrauchbar ist.
LG
Robert
-
Ja Ok, Verknüpfungsart stimmt.
Aber VALUE in Query hilft mir nicht (da ja immer Default geliefert wird, ausser bei SQL-Tables) sondern eher im SQL.
-
Hallo QRY - Leidensgenossen,
QRY sind halt Segen und Fluch zugleich.
Wir haben auch mehrere tausend QRY im System und ich stehe auch immer wieder vor der Aufgabenstellung, herauszufinden, in welchen QRY eine bestimmte Bibliothek oder Datei benutzt wird.
Ich hatte mir auf Anleitung von IBM vor vielen Jahren ein Programm RTVQRYF gebastelt, welches alle verwendete Dateien einer QRY in eine Datei ausgibt.
Habe dieses so in CL eingebunden und kann dann mit FINQRY 'BIBLIOTHEK' alle Qry dieser Bibiothek ausgeben. In Kombination mit einem weiteren CL, das alle Bibliotheken der As400 einliest, kann ich dann "auf Knopfdruck" eine Übersicht über alle im System vorhandenen QRY ausgeben.
Leider bin ich kein Programmierer und es ist schon viele Jahre her, das ich das Programm erstellt hab.
Wenn aber Interesse besteht, kann ich mal recherchieren, wie das genau funktioniert. Alle Quellen müsste ich noch haben.
Gruß
HS
-
Hallo Robert!
Ok, Auswahl 2 = LEFT OUTER JOIN.
 Zitat von RobertPic
Verknüpfungsart 3 (= mit Primärdatei ungleiche Sätze)
ist ein OUTER JOIN
Hm, bist du die da sicher? Ich hätte mir unter einem OUTER JOIN jetzt was anderes vorgestellt.
Viele Grüße
Jürgen
-
 Zitat von Pikachu
...
Hm, bist du die da sicher? Ich hätte mir unter einem OUTER JOIN jetzt was anderes vorgestellt.
100%, der Outer Join liefert nur Sätze, welche nicht in der verknüpften (Sekundär) Datei vorkommen.
Beispiel gefällig?
Outer Join (Query 3, auf der AS/400 im SQL exception join)
select * from kunstm exception join kunsta on
kunstm.firma = kunsta.firma and kunstm.kunnr = kunsta.kunnr
Liefert alle Kunden (aller Mandaten) aus der Kundenstammdatei, welche keine Sätze in der Statistikdatei haben.
Left Outer Join (Query 2):
select kunstm.firma, kunstm.kunr, kunstm.kunnam, value(kunsta.kunums, 0) from kunstm left outer join kunsta on kunstm.firma = kunsta.firma and kunstm.kunnr = kunsta.kunnr
Liefert alle Kunden mit Umsatz, auch wenn sie keinen Satz in der Umsatzdatei haben.
Leider kann man im Query bei der Verknüpfung der Dateien nicht mit Konstanten arbeiten (in diesem Fall, hat man meistens ein Geschäftsjahr in der Statistikdatei), daher ist Query in diesen Sachen kein (<- edit) vollwertiger SQL-Ersatz.
Der Standard Inner-Join, liefert nur Kunden mit Umsatzsätzen:
select kunstm.firma, kunstm.kunr, kunstm.kunnam, kunsta.kunumsfrom kunstm, kunsta where kunstm.firma = kunsta.firma and kunstm.kunnr = kunsta.kunnr
 Zitat von Fuerchau
... Aber VALUE in Query hilft mir nicht (da ja immer Default geliefert wird, ausser bei SQL-Tables) sondern eher im SQL.
hätte ich eigentlich auch so gemeint...
 Zitat von robertpic
..das Schlüsselwort VALUE (= COALESCE) im Query für diese Fälle unbrauchbar ist.
@erni:
Zum eigentlichen Problem:
gibt es die alten Datein noch nach der Umstellung?
Wir haben einmal alle logischen Dateien verschoben. Die Queries sind zwar beim Ausführen fehlgeschlagen, aber beim ersten Mal editieren, hat er sich die Libl. der Dateien aufgrund der Libl-Liste (mit Warnbildschirm) wieder selbst geholt. Wir haben daher die meisten Queries unberührt gelassen und nur eine Info an die Querybenutzer ausgegeben.
LG
Robert
-
Hallo Robert !
Was es alles für JOINs gibt ...
Aber unter einem OUTER JOIN hatte ich mir eigentlich vorgestellt, dass dieser die Vereinigungsmenge aus Datei 1 und Datei 2 liefert und die jeweils passenden Datensätze zusammenfasst. Und Datensätze zu denen es keine passende Entsprechung gibt, auch mit ausgibt. Und das in beide Richtungen gesehen. Gibt es sowas überhaupt im SQL?
Viele Grüße
Jürgen
-
 Zitat von Pikachu
...vorgestellt, dass dieser die Vereinigungsmenge aus Datei 1 und Datei 2 liefert und die jeweils passenden Datensätze zusammenfasst. Und Datensätze zu denen es keine passende Entsprechung gibt, auch mit ausgibt.
Bis hier her ist es ein lupenreiner LEFT OUTER JOIN (Queryverknüpfungsart 2).
 Zitat von Pikachu
Und das in beide Richtungen gesehen.
Aber Ersatzwerte für nicht vorhandene Sätze, gibt es nur für die Datei2 (SQL mit NULL, Query Defaultwerte).
In den meisten Fällen reicht das aber, weil z.B. keine Umsätze (Datei2) usw. ohne den entsprechenden Kunden (Datei1) geben sollte usw.
 Zitat von Pikachu
Gibt es sowas überhaupt im SQL?
Wenn man alle Kombinationen (Datei1 + Datei2, Datei1 ohne Datei2, Datei2 ohne Datei1) braucht, muss man 2 Select-Anweisungen mit UNION verketten.
LG
Robert
-
Hi,
 Zitat von RobertPic
@erni:
Zum eigentlichen Problem:
gibt es die alten Datein noch nach der Umstellung?
...Ausführen fehlgeschlagen, aber beim ersten Mal editieren, hat er sich die Libl. der Dateien aufgrund der Libl-Liste (mit Warnbildschirm) wieder selbst geholt. Wir haben daher die meisten Queries unberührt gelassen und nur eine Info an die Querybenutzer ausgegeben.
LG
Robert
eine große Masse unserer Query's, leider die Mehrzahl, wird über einen Job-Scheduler oder direkt aus dem Anwendermenü per RUNQRY eventl. noch mit RCDSLT(*YES) aufgerufen. Der Benutzer weiss in der Regel wenig damit anzufangen. Die betroffenen
Query's in den Benutzerbibliotheken müssen sowieso vom Anwender selber geändert werden.
Gruß
Jochen
Similar Threads
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 29-11-06, 18:07
-
By heini in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-09-06, 10:10
-
By TARASIK in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 22-08-06, 09:52
-
By Azubiiiiii in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 03-08-06, 09:44
-
By Hubert Brethauer in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 05-05-06, 12:37
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