Zitat Zitat von Fertig Beitrag anzeigen
Das würde m.E. doch nur dann funktionieren, wenn die Merkmale bereits vorher in den richtigen Spalten stehen würden.

Ich muß aber anhand des Inhaltes des Feldes MERKMAL
die Merkmalsausprägung in die entsprechende Spalte schreiben.

Nach dem Motto:
if MERKMAL = 'LAENGE'
move Merkmalsausprägung nach LAENGE
endif
und das für jedes MERKMAL.

Aber das ist halt dann nicht mehr dynamisch und muß bei neuen Merkmalen angepaßt werden.
Deshalb hatte ich SQL vorgeschlagen.
Anstatt eine physische Datei zu erstellen würde ich eine SQL View generieren.

Angenommen die Datei hat 3 Spalten: Artikel-Nr. ArtNr, Merkmal MRK, Wert Wert.
Dann könnte die View etwa so aussehen:
C
Code:
reate View MySchema/MyView
as Select ArtNr, Max(Case When MRK = 'A' Then Wert Else '' End) as MrkA,
                 Max(Case When MRK = 'B' Then Wert Else '' End) as MrkB,
                 Max(Case When MRK = 'C' Then Wert Else '' End) as MrkC,
                 ...
                 Max(Case When MRK = 'X' Then Wert Else '' End) as MrkX
    From MySchema/MyTable
    Group By ArtNr;
Die Daten sind immer aktuell, da eine View eine logische Sicht auf die Daten darstellt. Es wäre sogar möglich die Spalten in unterschiedlichen Datentypen und Längen auszugeben. Sofern neue Merkmale hinzukommen, das SQL-Statement entsprechend anpassen und die View neu erstellen.

Auf die View kann mit (embedded) SQL und sogar mit Query/400 zugegriffen werden.
Im Bedarfsfall könnte basierend auf dem gleichen SELECT-Statement natürlich auch eine physische Datei (bzw. SQL Tabelle) erstellt werden.

Birgitta