2016-11-29 60 views
0

我需要爲PS文件中的每位員工過濾最新記錄。我如何使用DFSORT實現這一點?按員工最新日期保留記錄,採用原始員工訂單

PS文件記錄爲員工id(6位數字)和日期(8位數字)。我需要過濾每個員工的最新紀錄保持原來爲了讓員工出現在

例如: 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日期。因此,這種排序會將所有員工記錄保留在一起,同時將該員工的最新記錄放在第一位。

編輯:SORT的最後一行改爲7,8,CH因爲這將仍然排序正確,沒有額外的開銷

+0

抱歉,您與其他人混淆了:-)您不能在排序中使用Y4T,它需要是CH(最好,或BI,這相當於混淆許多)。你可能已經使用了Y2T,我猜想爲了制定正確的整理順序而需要「開窗口」的開銷。 –

+0

@BillWoodger我做了建議的編輯。據我自己的知識,爲什麼Y2T工作而不是Y4T?我的印象是他們只是不同的格式,但功能應該是一樣的。 – SaggingRufus

+0

Y2T使用「年份窗口」知道01應該排序「高於」99.對於只能用CH正確排序的YYYYMMDD格式來說,這是沒有意義的。 –

相關問題