2016-11-29 19 views
0

PSファイル内の各従業員の最新のレコードをフィルタリングする必要があります。 DFSORTを使用してこれをどのように達成できますか?従業員の最新の日付で元の従業員の注文でレコードを保持

従業員ID(6桁)と日付(8桁)としてPSファイルに記録します。私は、従業員が中に現れた元の順序を維持する各従業員の最新のレコードをフィルターする必要が

例:。 I/Pファイル:

10000120150101 
10000320130101 
10000120160101 
10000220170101 
10000220160101 
10000320160101 

O/Pファイル:

10000120160101 
10000320160101 
10000220170101 

あなたが同じ注文ではなく最新のレコードを取得していない場合でも、答えを共有してください。

+1

追加のオーバーヘッドを持っているあなたは、元の順序を使用するか、しないだろうと?元の順序を気にしなければ、@ cschniedの答えは問題ありません。元の注文について心配している場合は、質問の最後の部分でどうして迷惑をかけるのですか? –

+0

ああ..私は@SaggingRufusを意味しました。申し訳ありません。 –

答えて

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

Y4Tタイプは、YYYYMMDD日付をソートしていることを示します。したがって、この種のソートでは、従業員のすべてのレコードがまとめられ、その従業員の最新のレコードが最初に配置されます。

EDIT:7,8にSORTの最後の行を変更し、CHこれはまだソート正しくない

+0

申し訳ありませんが、他の人とあなたを混乱させました:-) SORTでY4Tを使用することはできません.CH(最高、またはBIである必要がありますが、同等ですが多くを混同します)。あなたはY2Tを使用していた可能性があります。正しい照合シーケンスを実行するための「ウィンドウ」のオーバーヘッドがあると思います。 –

+0

@BillWoodger提案された編集を行いました。私自身の知識のために、なぜY2TはY4Tではなく動作しますか?私は彼らがちょうど異なるフォーマットだった印象を受けていましたが、同じように機能するはずです。 – SaggingRufus

+0

Y2Tは、01が99よりも上位をソートする必要があることを「年の窓」を使用しています.YYYYMMDD形式の場合は意味がありません.CHでは正しくソートできます。 –

関連する問題