2016-11-29 1 views
0

Ich muss die neuesten Datensätze für jeden Mitarbeiter in PS-Datei filtern. Wie kann ich dies mit DFSORT erreichen?Datensatz bis spätestes Datum für Mitarbeiter im ursprünglichen Mitarbeiterauftrag speichern

Datensätze in PS-Datei als Mitarbeiter-ID (6 Ziffern) und Datum (8 Ziffern). Ich brauche neuesten Datensätze der einzelnen Mitarbeiter zu filtern, um die ursprüngliche Reihenfolge zu halten, dass die Mitarbeiter erschienen in

Beispiel:. i/p-Datei:

10000120150101 
10000320130101 
10000120160101 
10000220170101 
10000220160101 
10000320160101 

o/p-Datei:

10000120160101 
10000320160101 
10000220170101 

Bitte teilen Sie die Antwort auch, wenn Sie nicht die gleiche Reihenfolge, aber die neuesten Aufzeichnungen erhalten.

+1

Wollen Sie die ursprüngliche Reihenfolge oder nicht? Wenn es nicht um die ursprüngliche Reihenfolge geht, ist @ cschnieds Antwort in Ordnung. Wenn Sie sich Sorgen um die ursprüngliche Bestellung machen, warum sollten Sie sich mit dem letzten Teil Ihrer Frage beschäftigen? –

+0

Ah .. Ich meinte @SaggingRufus. Das tut mir leid. –

Antwort

1
//SYSIN DD * 
SORT FIELDS=(1,6,CH,A, 
       7,8,CH,D) 
SUM FIELDS=NONE 
/* 

Der Y4T-Typ zeigt an, dass Sie ein JJJJMMTT-Datum sortieren. Bei dieser Art werden alle Mitarbeiterdatensätze zusammen gespeichert, während für diesen Mitarbeiter zuerst der neueste Datensatz erstellt wird.

EDIT: geändert letzte Zeile des SORT bis 7,8, CH da dies noch Art richtig und nicht über zusätzliche Overhead

+0

Sorry, verwechselte dich mit jemand anderem :-) Du kannst Y4T nicht so in einem SORT verwenden, es müsste CH sein (am besten oder BI, was äquivalent wäre aber viele verwirren würde). Du hättest Y2T verwenden können, was, denke ich, der Overhead der "Fensterung" wäre, um die richtige Sortierfolge auszuarbeiten. –

+0

@BillWoodger Ich machte die vorgeschlagene Bearbeitung. Warum würde Y2T funktionieren und nicht Y4T? Ich hatte den Eindruck, dass es sich nur um verschiedene Formate handelt, die aber gleich funktionieren sollten. – SaggingRufus

+0

Y2T verwendet das "Jahr-Fenster", um zu wissen, dass 01 "höher" als 99 sortieren sollte. Dies ist bedeutungslos für ein YYYYMMDD-Format, das einfach korrekt mit CH sortiert werden kann. –

Verwandte Themen