Hallo zusammen:

Ich möchte ein SQL schreiben, das mir eine Liste ausgibt mit je einer Zeile für einen Artikel, hinter dem alle Lieferanten in dieser Zeile stehen.


Die Voraussetzungen schaffen:
CREATE SCHEMA CARSTEN IN ASP 1

CREATE TABLE CARSTEN/TABLE1 (ARTNR CHAR (5 ) NOT NULL WITH DEFAULT, LIEFNR CHAR (5 ) NOT NULL WITH DEFAULT)

INSERT INTO CARSTEN/TABLE1 (ARTNR, LIEFNR) VALUES('A', '1')
INSERT INTO CARSTEN/TABLE1 (ARTNR, LIEFNR) VALUES('A', '2')
INSERT INTO CARSTEN/TABLE1 (ARTNR, LIEFNR) VALUES('A', '3')
INSERT INTO CARSTEN/TABLE1 (ARTNR, LIEFNR) VALUES('B', '1')
INSERT INTO CARSTEN/TABLE1 (ARTNR, LIEFNR) VALUES('B', '2')
INSERT INTO CARSTEN/TABLE1 (ARTNR, LIEFNR) VALUES('C', '1')

Ein Select liefert nun folgende Daten:

select * from carsten/table1
ARTNR LIEFNR
----- ------
000001 A 1
000002 A 2
000003 A 3
000004 B 1
000005 B 2
000006 C 1


Dazu habe ich mir überlegt eine Funktion zu schreiben, an die ich die Artikel Nr. übergebe, die dann einen select macht und die Lieferanten einliest cancatiniert und zurückgibt. Das aufrufende Select sollte so aussehen: select artnr, lieferenten(artnr) from carsten/table1 order by artnr

Geht das überhaupt: In eine CREATE FUNKTION ein SELECT einzubauen?

Das Ergebnis sollte dann so aussehen:
A 1 2 3
B 1 2
C 1



Viele Grüße Carsten