-
sql join
werte teilnehmer,
ein Thema, schon zigmal behandelt, leider weiß ich es nicht mehr.
2 Tabellen A und B.
ein Satz in Tabelle A kann mehrere passende Verknüpfungen in Tabelle B haben.
Der Satz in Tabelle A darf aber nur einmal angezeigt werden,
egal wieviele Verknüpfungen in Tabelle B er hat.
Allerdings darf er auch nur dann angezeigt werden, wenn mindesten eine Verknüpfung mit Tabelle B vorhanden ist.
Bitte um Lösungsvorschläge.
Danke
-
select a.f1, a.f2, ...., b.f1, b.f2, ...
from tableA a, tableB b
where
a.key=b.key ... and .....
-
so klappt es leider nicht wie gewünscht.
folgender Dateninhalt
Tabelle a....................Tabelle b
key_a1, f01, f02...........key_a1, key_b1, f01, f02, f03...
.................................key_a1, key_b2, f01, f02, f03...
.................................key_a1, key_b3, f01, f02, f03...
.
key_a2, f01, f02...........key_a2, key_b1, f01, f02, f03...
.
key_a3, f01, f02
.
Ein Eintrag in Tabelle a darf nur dann angezeigt werden,
wenn der Key auch in Tabelle b vorkommt.
Der Eintrag sollte aber in der Auflistung nur einmal angezeigt werden, egal wieviele gleiche Schlüssel es in Tabelle b gibt.
key_a1 darf also nur einmal angezeigt werden, obwohl er in Tabelle b dreimal vorkommt.
key_a3 darf nicht angezeigt werden, da er in Tabelle b keine
Verknüpfung hat.
Bitte noch einmal um Antworten.
Danke
-
Select t1.fld1, t1.fld2, ... from tabelle t1 inner join tabelle t2 on t1.fld1 = t2.fld1 group by t1.fld1, t1.fld2 , usw (alle Felder die im Select ausgewählt wurden)
Mal so zu probieren.
-
Hallo,
(schüttel) was soll denn der arme Kerl da aus der zweiten Datei von mehreren zur Auswahl stehenden Inhalten anzeigen, wenn jetzt die Antwort den ersten kommt, dann ist das kein Fall für SQL, das ist eine
D a t e n b a n k Abfragesprache und nicht für die Verarbeitung von sequentiellen Haufen gedacht. (ich weiß, da gibt es Work arounds...)
mfg
Dieter Bender
 Zitat von rr2001
so klappt es leider nicht wie gewünscht.
folgender Dateninhalt
Tabelle a....................Tabelle b
key_a1, f01, f02...........key_a1, key_b1, f01, f02, f03...
.................................key_a1, key_b2, f01, f02, f03...
.................................key_a1, key_b3, f01, f02, f03...
.
key_a2, f01, f02...........key_a2, key_b1, f01, f02, f03...
.
key_a3, f01, f02
.
Ein Eintrag in Tabelle a darf nur dann angezeigt werden,
wenn der Key auch in Tabelle b vorkommt.
Der Eintrag sollte aber in der Auflistung nur einmal angezeigt werden, egal wieviele gleiche Schlüssel es in Tabelle b gibt.
key_a1 darf also nur einmal angezeigt werden, obwohl er in Tabelle b dreimal vorkommt.
key_a3 darf nicht angezeigt werden, da er in Tabelle b keine
Verknüpfung hat.
Bitte noch einmal um Antworten.
Danke
-
 Zitat von BenderD
(ich weiß, da gibt es Work arounds...)
Uah - bin grade auf einer Kundenmaschine in uralten RPG-Verwurstelungen drin, und Du schreibst was von würgarounds... <g>
-h
-
Das ist auch keine Sache eines SQL's (der liefert immer nur ganz Zeilen) sondern eines Reporting-Systems.
Query/400 kann das ganz gut, wenn man die Felder der Datei A als Gruppenfelder (Gruppenwechsel) deklariert. Dann werden diese Inhalte tatsächlich nur 1 Mal gedruckt.
Anzeige geht da schon nicht mehr.
Hier kann man dann eher mit QM-Query Formularen arbeiten.
Auch hier werden die Gruppenfelder nur 1 Mal ausgegeben, man kann sogar entscheiden, ob am Anfang, Ende oder in den Kopf/Fuss-Zeilen.
Allerdings hapert es da ein wenig mit der Dezimaleditierung.
Wer es mit PC-Software versucht, kann z.B. MS-Access-Berichte verwenden, auch die können das sehr gut.
Für programmierte Anwendungen hat sich CrystalReports etabliert.
Oder wie wäre es mit:
- .NET/Data
- XML/XSLT
- HTTP
- Bowser (IE, Netscape, ...)
- u.v.m
-
hallo Leute,
erstmal vielen Dank für die rege Beteiligung.
Also ganz so wie hier dargestellt ist es nicht.
Man kann z. B. mittels
- with - aus Tabelle b, wo ich ja mehrere Verknüpfungen zu Tabelle a haben kann, eine neue Tabelle erstellen,
wo man pro Key nur mehr einen Eintrag hat.
Plinzen hat mit "goup by" schon einen wichtigen Ansatz dazu geliefert.
Vielen Dank an alle.
RR
-
Hallo,
bei all diesen Spielchen kriegt man aus Tabelle B keine Felder, ohne dass man wieder das Mehrfachproblem hat; wenn man von da keine braucht, sondern nur auf die Sätze aus A eingrenzen will, die mindestens einen Satz gleichen Schlüssels in B haben (sowas wie Kunden, die mindestens eine Bestellung haben), dann geht das ohne jeden komplizierten Schnörkel:
select distinct A.*
from A, B
where A.key = B.key
mfg
Dieter Bender
 Zitat von rr2001
hallo Leute,
erstmal vielen Dank für die rege Beteiligung.
Also ganz so wie hier dargestellt ist es nicht.
Man kann z. B. mittels
- with - aus Tabelle b, wo ich ja mehrere Verknüpfungen zu Tabelle a haben kann, eine neue Tabelle erstellen,
wo man pro Key nur mehr einen Eintrag hat.
Plinzen hat mit "goup by" schon einen wichtigen Ansatz dazu geliefert.
Vielen Dank an alle.
RR
Similar Threads
-
By Robi in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 22-06-07, 15:52
-
By ahingerl in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 08-12-06, 08:28
-
By cassi in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 22-11-06, 15:03
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 19-10-06, 07:56
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 18-06-06, 12:14
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