View Full Version : SQL Verknüpfung und Datenausgabe
Hallo Kollegen,
ich habe 2 Tabelle die ich mit einander verknüpfe. Ich bekomme auch die richtigen Daten, aber in der 2. Tabelle habe ich immer einen Datensatz mit 3 unterschiedlichen Felder die ich ausgeben möchte.
Bespiel:
Tabelle 1 :
Kunden_Nr
Tabelle 2:
Kunden_Nr
Feld 1
Feld 2
Feld 3
jetzige Ausgabe:
Kunden_nr, Feld 1, Feld 2, Feld 3
gewünschte Ausgabe:
Kunden_Nr, Feld 1
Kunden_Nr, Feld 2
Kunden_Nr, Feld 3
Muß ich die Tabelle 2 dreimal angeben?
Vielleicht kann mir einer helfen.
Danke schon einmal im Voraus
Jenne
andreaspr@aon.at
23-01-12, 10:48
Wenn Feld1 - 3 vom gleichen Datentyp sind, kannst du mit UNION arbeiten.
So auf die Art:
Select * from (
Select kndnr, Feld1 From tab1, tab2
where tab1.kndnr = tab2.kndnr
union
Select kndnr, Feld2 From tab1, tab2
where tab1.kndnr = tab2.kndnr
union
Select kndnr, Feld3 From tab1, tab2
where tab1.kndnr = tab2.kndnr
) t1
order by kndnr
lg Andreas
Du benötigst 3 Select-Anweisungen, die durch Union-Anweisungen als Einheit ausgeführt werden:
Select KundeNr, Fld1 as FLD
From MyFile Join ...
Where ...
Unoin All
Select KundeNr, Fld2 as FLD
From MyFile Join ...
Where ...
Union All
Select KundeNr, Fld3 as FLD
From MyFile Join ...
Where ...
Order By ...
Birgitta
Hallo Birgitta,
das hat jetzt soweit super geklappt,
aber das order by am Ende funktioniert nicht. Ich bekomme immer die Meldung:
Spalte Kunden_Nr darf nicht qualifiziert werden.
Gruß
Jenne
Ich nehme an, Du verwendest die Lösung von Andreas mit dem verschachtelten Sub-Select und nicht meine Lösung.
In Andreas Lösung musst Du, sofern Du die Kunden-Nr. qualifiziert angegeben willst T1 (und nicht den Datei-Namen) davor setzen.
Ansonsten könnest Du auch im Order By die Spalten-Nr. angeben, (z.B. Order By 1)
Der Order By sortiert die Daten aus allen 3 Selects (und nicht aus den einzelnen Selects, das ist erst ab Release 6.1 möglich).
Vielleicht noch eine Anmerkung zu UNION und UNION ALL.
Wird UNION ohne ALL angegeben, werde Duplikate eliminiert, d.h. wenn Du also für den gleichen Kunden in Feld 1 und Feld 2 den gleichen Wert hast, bekommst Du nur eine Zeile.
Bei Verwendung von UNION ALL werden alle Sätze ausgegeben, d.h. bei gleichen Feld-Wert werden mehrere Sätze ausgegeben.
Birgitta
Danke Birgitta, danke Andreas,
jetzt hat alles geklappt.
Order by mit der Nummer wahr der letzte Baustein der mir noch fehlte.
Gruß
Jenne
andreaspr@aon.at
24-01-12, 11:05
Da hat sich doch noch der eine oder andere Fehler bei mir eingeschlichen. :)