Я использую это в Access 2003. Извините, если это не в том месте, но я надеялся, что кто-то может помочь.
У меня есть таблица с несколькими записями, в которой текстовое поле представляет поле даты. Дата в таком формате, как: «01.06.2009» Мне нужно выбрать все поля из таблицы, но только 6 самых старых строк, попадающих в диапазон для каждой группы:
COUPONS.DocType, COUPONS.PayTo, COUPONS.ContactName, COUPONS.ContactNumber,
COUPONS.DocFooter, COUPONS.PQBName, COUPONS.LetterDate, COUPONS.RetireeFirstName,
COUPONS.RetireeLastName, COUPONS.Address1, COUPONS.Address2, COUPONS.City,
COUPONS.State, COUPONS.ZIP, COUPONS.PQBSSN, COUPONS.EmployerCode
ordered by the COUPONS.DateDue.
Мне нравится: выберите только записи с диапазоном дат 01.01.2009 - 01.12.2009, и из них выберите только 6 самых старых записей.
Я немного повозился с этим и мне не повезло. Я знаю, что это довольно просто, но я просто не могу заставить это работать. Вот выбор SQL, который я использую, чтобы получить дату из таблицы.
SELECT COUPONS.DocType, COUPONS.PayTo, COUPONS.ContactName, COUPONS.ContactNumber,
COUPONS.DocFooter, COUPONS.PQBName, COUPONS.LetterDate, COUPONS.RetireeFirstName,
COUPONS.RetireeLastName, COUPONS.Address1, COUPONS.Address2, COUPONS.City,
COUPONS.State, COUPONS.ZIP, COUPONS.PQBSSN, COUPONS.EmployerCode, COUPONS.AmountDue,
COUPONS.DateDue, Right([DateDue],4)+Left([DateDue],2)+Mid([datedue],4,2) AS SORTDATE
FROM COUPONS
ORDER BY COUPONS.DocType, COUPONS.PayTo, COUPONS.ContactName, COUPONS.ContactNumber,
COUPONS.DocFooter, COUPONS.PQBName, COUPONS.LetterDate, Right([DateDue],4)+Left
([DateDue],2)+Mid([datedue],4,2);