在企業ERP中,每位員工擁有多個資質證書,資質證書有種類、名稱和登記時間,以及變動時間和結束時間的主要屬性;現在有一個需求,員工在系統查看自己的資訊之時:同一種類、同一名稱、同一登記時間的資質證書,取變動時間最近的顯示出來,其餘的不顯示。
資料來源:SAP生產系統透過RPC的方式取得;
主題
以下是表格的主要結構(手機顯示可能有換上現象):
這個地方如果給最新的那筆記錄,加一個標識,例如加個欄位顯示x,過濾的時候用sql直接出結果,挺方便的,我問過SAP開發的同事:no;
#路
程式碼沒有新穎的,只說一下我的想法(也可能有些問題):
1、先用MySQL語句GROUP BY 已經三個欄位的結果分組;分組的結果:依照需求將資料分成一組一組的,每組中的資料並依照變動時間,最新的在上面(也就是符合要求的那一條,在最上面)
2、Java程式碼拿到資料集,進行處理;
3、剛才上面說了,第一條是符合要求的,就遍歷資料集,每組的資料集,用List的特點,將所有元素置為相同的元素,與第一條保持一致;
4、去重;
透過簡單的方式,實現了這個小的需求;
#總結
總結成簡單的話,
1、先分組,分組的資料依照時間降序排列;
2、再用Java程式碼處理List,將list的元素用遍歷的方式將值設為一致;
3、將list去重;
【推薦課程:MySQL教學】
以上是MySQL語句與Java程式碼實現按需過濾企業員工的資格證書的詳細內容。更多資訊請關注PHP中文網其他相關文章!