2011-09-07 75 views
0

我在Microsoft.Jet.OLEDB.4.0提供程序中使用VBA excel文件中的ADODB连接。 与我建立连接的文件是.csv文件,它看起来像:OLEDB查询选择ID的第一次和最后一次

Date and time, Last name, First name 
2011-08-29 05:48:50,lname1,fname1 
2011-08-29 05:49:50,lname1,fname1 
2011-08-29 05:55:50,lname2,fname2 
2011-08-29 16:11:50,lname1,fname1 
2011-08-29 17:55:50,lname2,fname2 
2011-08-30 9:11:50,lname1,fname1 

的一点是,我的数据是由Date and time这是一个字段排序,以及用户名不按任何顺序。 我真正需要做的是创建一个查询来填充Recordset

我需要此查询到每个用户名为,每天选择第一个,第二个和最后一个小时。 甚至有可能仅仅使用查询来拆分Date and time列? 我已经知道如何选择我想要的东西,但对于我来说这件事太复杂了,因为那个日期和时间在同一个领域。

你能给我什么建议吗?

回答

1

让我们假设你的文件被称为Dates.csv,你可以尝试:

SELECT 
    [Last name] & ", " & [First Name] AS FullName, 
    Format([Date And time],"yyyy/mm/dd") AS WorkingDay, 
    First(Format([Date And time],"hh:nn:ss")) AS FirstHour, 
    Last(Format([Date And time],"hh:nn:ss")) AS LastHour 
FROM [Dates.csv] 
GROUP BY [Last name] & ", " & [First Name], Format([Date And time],"yyyy/mm/dd") 

我有点可疑的日期和时间之间的双重空间。如果我是你,我会摆脱列名中的空格。它会让事情变得更容易。

+0

哇,工作很棒!非常感谢! – Jandrejc

相关问题