Anmelden

View Full Version : Logische datei erstellen



KingofKning
27-11-13, 15:25
Hallo *all,
es gibt Tag....

Ich möchte zur Lösung meine Problems ja jetzt eine LF erstellen.
und habe folgendes angegeben:

A*
A K AKFA
A K AKABKZ
A K AKFAKT
A K AKANR
A S AKKDT2 COMP(LE 880101)
A S AKKDT2 COMP(GE 130101)
A O AKFAKT COMP(EQ 5)

Sprich ich will alle Sätze ab dem 1 Januar 2013 haben aber natürlich nicht die Sätze aus dem Jahr 1988 und folgende.
Da das Feld nur 6 Stellen hat ist es dann halt 130101 und 880101 als Wert.
Ich bekomme aber Wert wie:
Auft. Firma Arbeits Fakt Beleg Ident
Datum /Werk gebiet Kz. Nr. nummer
000001 0.01.03 1 1 740646 8658
000002 0.01.03 1 1 740657 2201
000003 0.01.03 1 1 740660 8561
000004 0.01.03 1 1 740663 8422

und

Auft. Firma Arbeits Fakt Beleg Ident
Datum /Werk gebiet Kz. Nr. nummer
000154 99.12.22 1 1 740562 2323
000155 99.12.22 1 1 740566 8375
000156 99.12.22 1 1 740570 8423

rein.

Wenn ich im Query die Eingrezung mache funktioniert das.
AND/OR Feld Test Wert (Feld
AKFAKT NE 5
AND AKKDT2 LE 880101
AND AKKDT2 GE 130101

Warum greift das Omit nicht?

GG

camouflage
27-11-13, 15:48
Versuchs mal so:



A*
A K AKFA
A K AKABKZ
A K AKFAKT
A K AKANR
A S AKKDT2 COMP(LE 880101)
A AKKDT2 COMP(GE 130101)
A AKFAKT COMP(NE 5)

Fuerchau
27-11-13, 16:52
Jedes "S" leitet ein "OR" ein.
Wichtig ist natürlich die Reihenfolge der Bedingungen:
between 880101 and 130101 liefert kein Ergebnis!
between 130101 and 880101 ist korrekt.

tierock
28-11-13, 08:23
beim Verwenden von O und S in einer Logischen müssen zuerst die O-Bedingungen kommen, dann erst die S-Bedingungen, im o.a. Beispiel also
A O AKFAKT COMP(EQ 5)
A S AKKDT2 COMP(LE 880101)
A S AKKDT2 COMP(GE 130101)

KingofKning
28-11-13, 08:44
Es ist doch immer wieder verblüffend, kaum macht man es richtig gehts auch.....

Also die Doku von der IBM ist da doch etwas spärlich..... (Zumindestens die, die ich gefunden habe)

GG

Fuerchau
28-11-13, 09:01
Die Reihenfolge der O/S-Anweisungen ist letztlich egal.
Es kommt nur auf die Vergleiche an.
Alles was per O(mit) ausgeschlossen wird, kann per nachfolgendem S(elect) nicht mehr reinkommen.
Außerdem wird immer automatisch ein letzter O(mit) ALL angehängt.
Näheres siehe hier:
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rzakb/selectomit.htm?resultof=%22%64%64%73%22%20%22%73%6 5%6c%65%63%74%22%20%22%73%65%6c%65%63%22%20