2010-02-08 4 views
0

Допустим, у меня есть таблица с этими полямиMSAccess - Дизайн запросов к группе юбилейной дате

LeaveDate 
LeaveType 

Я хочу написать запрос, чтобы группы по датой годовщина.

Например говорят, 8 февраля

Так как в этом году любые даты после 8 февраля будет «2010» и любые даты до 8 февраля покажет «2009».

Я хочу, чтобы это происходило за все годы данных.

Понять ??

Malcolm

+0

Похоже, вы хотите сделать датированный с первой юбилейной даты, а затем взять слово результата в годах, затем группу. Тем не менее, никогда не использовался Access для нетривиальной работы с базами данных, поэтому не мог бы вам советовать *, как это сделать. –

+0

О, также, если вы хотите получить полезный ответ, лучше было бы опубликовать определение соответствующей таблицы (таблиц) и пример того, что вы ожидаете от вывода запроса. –

+0

Ах, то же имя для функции, что и везде: DateDiff() http://office.microsoft.com/en-us/access/ha012288111033.aspx –

ответ

0

Вы можете создать запрос с вычисляемым столбцом для юбилейной даты, то групп по этой колонке.

1

Вот как я это сделал

SELECT Year([tblFoo]![Leave_date])-IIf(DateDiff("d",[tblFoo]![Leave_date],DateSerial(Year([tblFoo]![Leave_date]),2,8))>0,1,0) AS Year_group, Count(tblFoo.ID) AS CountOfID 

FROM tblFoo 

GROUP BY Year([tblFoo]![Leave_date])-IIf(DateDiff("d",[tblFoo]![Leave_date],DateSerial(Year([tblFoo]![Leave_date]),2,8))>0,1,0); 

Это подсчитывает количество записей для каждого «Год». Мы используем нечто похожее для разработки дней рождения, которые меняются от человека к человеку. В этом случае использование может просто заменить фиксированные 2 и 8 месяцем и днем ​​их рождения.

Смежные вопросы