OLEDB查询选择id的第一次和最后一次

时间:2011-09-07 08:02:53

标签: excel vba oledb adodb

我在使用Microsoft.Jet.OLEDB.4.0提供程序的VBA excel文件中使用ADODB连接。 我正在建立连接的文件是.csv文件,它看起来像:

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 个答案:

答案 0 :(得分: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")

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