PDA

View Full Version : Create Tabl/CPYF



tarkusch
09-10-12, 13:52
Hallo,

ich erstelle/Kopiere mir eine Workfile in die Qtemp.
Die Orginaldatei hat aber ein Keyfeld, welches ich nicht brauche.

Ist es möglich die Keyfelder zu entfernen, habe es auch schon mit Sql Create Table versucht.




CPYF FROMFILE(HOMDTA/ZPTOPT)
TOFILE(QTEMP/QWRKF)
FROMMBR(*FIRST)
TOMBR(*FIRST)
MBROPT(*REPLACE)
CRTFILE(*YES)
FMTOPT(*NOCHK)


Gruß

Tarki

Fuerchau
09-10-12, 13:54
Der CPYF erstellt eine genaue Kopie der Felder aber ohne Index.
Benötigst du nicht alle Felder kannst du das per SQL erledigen:

create table as
(select f1, f2, f3 from mytable)
with data

tarkusch
09-10-12, 13:59
Hallo Fuerchau,

mein Problem ist es das ein Keyfeld eine fortlaufende Nummer ist, die ich aber manchmal mehrere Sätze mit der gleichen Nummer belegen möchte.

Bin ich da ganz auf dem Holzweg?

Gruß

Robi
09-10-12, 15:55
Wie Baldur geschrieben hat:

create table as DeineDatei
(select dec(0, 7, 0) as KeyNr, f1, f2, f3 from mytable)
with data

Dann hast due eine Datei mit Key, 7 0 und die Felder f1, f2 und f3

in die Keynr kannst du schreiben was du willst

Robi

Fuerchau
09-10-12, 16:09
Wenn ich von deinem ersten Post ausgehe, möchtest du eine temporäre Tabelle, die nicht alle Felder der Quelltabelle enthalten soll.

Dies geht wirklich am einfachsten mit obigem Create Table.
Du kannst dabei natürlich auch neue Felder dazuerfinden.

tarkusch
10-10-12, 15:34
Wie Baldur geschrieben hat:

create table as DeineDatei
(select dec(0, 7, 0) as KeyNr, f1, f2, f3 from mytable)
with data

Dann hast due eine Datei mit Key, 7 0 und die Felder f1, f2 und f3

in die Keynr kannst du schreiben was du willst

Robi

Hallo,

Dec(0, 7, 0):
für was steht eigentlich die erste Null?

Tarki

Robi
10-10-12, 16:00
mein Problem ist es das ein Keyfeld eine fortlaufende Nummer ist, die ich aber manchmal mehrere Sätze mit der gleichen Nummer belegen möchte.


(die 1. null muß in hochkomma)
damit erzeugst du ein 7 stelliges numerisches Feld mit 0 um später nach deinen kriterien die Nr hinzu zu fügen

Robi

Fuerchau
10-10-12, 17:27
Da muss nix in Hochkomma.
Wobei mir die genaue Aufgabenstellung nun immer noch nicht klar ist.

tarkusch
11-10-12, 06:06
Die Aufgabenstellung war das eine neue detailreichere Statistik erwünscht war.

Ein Uralt-Programm aus dem Jahre 88 befüllt diese Datei aber genau nur mit einem Satz.

Nun gibt es aber zu einer Buchung, mehrere Sätze, und 5 neue Felder.

Ich dachte mir, wieso alles neu erfinden, da ja viele gar nicht mehr wissen, ob das Feld überhaupt gebraucht wird, bzw. nach einem halben Jahr auf der Matte stehen und frage wieso das Feld es nicht mehr vorhanden ist.

Die befüllte Datei wird ja von anderen Pgm auch benutzt.

Gruß

Tarki

Fuerchau
11-10-12, 08:26
Tut mir leid, aber diese Aufgabenbeschreibung kann ich mit obigem Copy noch nicht in Einklang bringen.

Du kannst natürlich eine neue Datei erstellen (per DDS/SQL) und beim CPYF ... FMTOPT(*MAP *DROP) nur die passenden Felder aus Datei1 in Datei2 kopieren.