我有一个文件,需要过滤的数千条记录。 下面提供了一个数据样本。这些是学校的考试成绩。来源是一个平面文件(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文件?在这个过程的任何时候都没有涉及数据库? –