OLEDB запрос, чтобы выбрать первый и последний раз для идентификатора - PullRequest
0 голосов
/ 07 сентября 2011

Я использую соединение ADODB в файле Excel VBA с поставщиком Microsoft.Jet.OLEDB.4.0.Файл, с которым я устанавливаю соединение, - это файл .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 Ответ

1 голос
/ 07 сентября 2011

Допустим, ваш файл называется 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")

Я немного подозреваю о двойном пробеле между датой и временем.Я бы избавился от пробелов в именах столбцов, если бы я был тобой.Это сделает вещи проще.

...