我有一個文件,需要過濾的數千條記錄。 下面提供了一個數據樣本。這些是學校的考試成績。來源是一個平面文件(csv) 目標是篩選記錄,並且只輸出一個最接近於2016年1月15日12:00的記錄,每個ID號碼 這是可能的,如果是這樣,您會怎麼做所以用SSIS或SSDT?我不確定是否使用條件拆分,派生列等來完成此操作,以及使用哪個命令來獲取距所需日期和時間最近的行。非常感謝!從CSV源文件數據的根據最近的日期篩選出行
樣品
ID, FNAME, LNAME, DATE, SCORE1, SCORE2, SCORE3 1, JOHN, DOE, 12/11/2015 7:44, 100, 99, 98 1, JOHN, DOE, 12/29/2015 11:45, 99, 100, 96 1, JOHN, DOE, 1/10/2016 11:46, 98, 97, 97 1, JOHN, DOE, 1/20/2016 8:47, 97, 98, 99 1, JOHN, DOE, 3/20/2016 11:48, 96, 96, 100 2, JANE, DOE, 12/12/2015 11:44, 100, 99, 98 2, JANE, DOE, 12/28/2015 11:45, 99, 100, 96 2, JANE, DOE, 1/9/2016 11:46, 98, 97, 97 2, JANE, DOE, 1/23/2016 9:47, 97, 98, 99 2, JANE, DOE, 3/8/2016 8:48, 96, 96, 100 3, CHRIS, DOE, 2/8/2016 8:00, 100, 100, 100
其將被寫入到一個csv平面文件目標將是 ID, FNAME, LNAME, DATE, SCORE1, SCORE2, SCORE3 1, JOHN, DOE, 01/10/2016 11:46, 98, 97, 97 2, JANE, DOE, 01/9/2016 11:46, 98, 97, 97 3, CHRIS, DOE, 2/8/2016 8:00, 100, 100, 100
差不多就是我會做 - 可能使用OPENQUERY/OPENROWSET如果SQL Server有到文件,這是不可能的直接訪問。但是大多數情況下,它會涉及將文件拉入各種表格中,並運行與上述類似的內容。如果您需要加入其他數據,我會考慮對該查詢進行OUTER APPLY,以仍然以基於集合的方式獲得結果。 –
不幸的是,我不得不使用SSIS來達到預期的效果。我們正在使用csv源文件而不是SQL數據庫。它必須拉出日期最接近指定日期的行,不能使用行號,因爲行數總是不一樣。 – Andrew
因此,您正在導入.csv文件,並使用ssis將行導出到新的.csv文件?在這個過程的任何時候都沒有涉及數據庫? –