-
SQL rekursiv ?
Hallo zusammen,
ich habe folgende Herausforderung. Es handelt sich um 2 Tabellen. Die eine Tabellen enthält nur die Kundennummer. Die 2. Tabelle enthält ebenfalls die Kundennummer und eine bestimmte Eigenschaft des Kunden. Allerdings kann es x-Eigenschaften eines Kunden geben. Also eine 1:n-Beziehung.
Kann ich aus den beiden Tabellen mit SQL-Anweisungen eine Ergebniszeile mit dem folgenden Format: KUNR, Eigenschaft1, Eigenschaft2, ...... bilden ?
Allerdings ist die Anzahl der Eigenschaften nicht für alle Kunden gleich. Es gibt Kunden mit nur einer Eigenschaft, oder Kunden mit 10 Eigenschaften.
Kann ich hier mit Rekursion arbeiten ?
-
Ein ähnliches Thema hatten wir hier schon mal.
Du musst dir dafür eine SQL-Funktion schreiben, die selber einen Select auf die 2. Tabelle macht, die einzelnen Werte mit Conact in eine Variable zusammenschiebt und dann zurückgibt.
PS:
Ab Firebird 2.1 gibts da die Aggregatfunktion LIST.
-
Super. Vielen Dank für die Info.
Habe die Stelle im Forum auch bereits gefunden und die Funktion auf meine Bedürfnisse abgeändert.
Leider bekomme ich bei der Erstellung der Funktion den Syntax-Fehler TOKEN ';' ungültig.
Ich habe die Funktion bereits mehrfach geprüft, komme aber nicht auf den Fehler. Ich muss dazu sagen, dass dies nach der Funktion "HELLO" erst meine 2. UDF ist.
Hier die Funktion:
CREATE FUNCTION yc03xf5.ROW2COL ( PARIdVoBew VARChar(255) )
RETURNS VARCHAR(2048)
LANGUAGE SQL
NOT DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
BEGIN
DECLARE RETURNVAL VARCHAR ( 2048 ) NOT NULL DEFAULT ' ' ;
FOR CSRC1 AS C1 CURSOR
FOR SELECT (trim(t2.bezei00001) !! ':' !! ' ' !!
digits(t1.wert) !! ' - ') as TEXT
FROM kessprod14.g_mer00001 t1
join kessprod14.g_bew00001 t2
on t1.id_merkmal = t2.id
WHERE id_vo00001 = PARIdVoBew
DO SET ReturnVal = ReturnVal CONCAT ' ' CONCAT CsrC1.Text;
END FOR ;
RETURN LTRIM(ReturnVal) ;
END;
Kann jemand den Fehler erkennen ?
Vielen Dank für Eure Hilfe.
-
beim letzten end kommt doch keines..
also die letzte zeile
-
peinlich, aber das wars.
bin halt doch noch ein rookie
danke dafür
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
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