Office

Поиск записей с самыми или более поздними датами

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

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

В этой статье

Обзор

Подготовка образцов данных для отслеживания с помощью примеров

Поиск наиболее или более поздней даты

Поиск наиболее или более последних дат для групп записей

Обзор

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

Если вы хотите сгруппировать или обобщить данные перед их ранжированием, вам не нужно использовать запрос на набор значений. Предположим, что нужно найти объем продаж за указанную дату для каждого города, в котором работает компания. В этом случае города становятся категориями (необходимо собрать данные по городам), поэтому можно использовать итоговый запрос.

При использовании запроса на набор значений для поиска записей, содержащих последние или самые ранние даты в таблице или группе записей, вы можете ответить на различные деловые вопросы, например:

  • Кто еще более поздних продаж?

  • Когда клиент делал заказ в последний раз?

  • Когда три дня рождения в группе?

Чтобы создать запрос на набор значений, начните с создания запроса на выборку. Затем отсортируйте данные в соответствии с вашим вопросом, где вы ищете верхнюю или нижнюю часть. Если вам нужно сгруппировать или обобщить данные, включите запрос на выборку в итоговый запрос. Затем можно использовать агрегатную функцию, например Max или min , чтобы возвратить наибольшее или наименьшее значение, а также первую или последнюю , чтобы возвращалась самая ранняя или самая поздняя дата.

В этой статье предполагается, что используемые значения даты имеют тип данных "Дата/время". Значение даты находится в текстовом поле.

Использование фильтра вместо запроса максимальных значений

Фильтр обычно лучше, если у вас запомните определенную дату. Чтобы определить, стоит ли создавать запрос на набор значений или же следует применить фильтр, примите во внимание следующее:

  • Если вы хотите вернуть все записи, в которых Дата совпадает, — до или позднее определенной даты, используйте фильтр. Например, для просмотра дат продаж между апрелем и июлем нужно применить фильтр.

  • Если вы хотите вернуть указанный объем записей, которые содержат самые последние или последние даты в поле, и не знаете точных значений дат или не имеет значения, вы создаете запрос на набор значений. Например, чтобы посмотреть пять лучших кварталов продаж, используйте запрос на набор значений.

Дополнительные сведения о создании и использовании фильтров см. в статье Применение фильтра для просмотра выбранных записей в базе данных Access.

К началу страницы

Подготовка образцов данных для отслеживания с помощью примеров

В действиях, описанных в этой статье, используются данные из следующих образцов таблиц.

Таблица "сотрудники"   

Фамилия

Сначала Name (имя )

Адрес

Город

Каунтрйорр егион

Рождения Date (Дата )

Прием на работу Date (Дата )

Авдеев

Григорий

Загородное шоссе, д. 150

Москва

РФ

05-фев-1968

10-июн-1994

Кузнецов

Артем

ул. Гарибальди, д. 170

Пермь

РФ

22-май-1957

22-ноя-1996

Дегтярев

Дмитрий

ул. Кедрова, д. 54

Красноярск

РФ

11-ноя-1960

11-мар-2000

Зуева

Ольга

ул. Губкина, д. 233

Тверь

РФ

22-мар-1964

22-июн-1998

Белых

Николай

пл. Хо Ши Мина, д. 15, кв. 5

Москва

РФ

05-июн-1972

05-янв-2002

Комарова

Лина

ул. Ляпунова, д. 70, кв. 16

Красноярск

РФ

23-янв-1970

23-апр-1999

Зайцев

Сергей

ул. Строителей, д. 150, кв. 78

Омск

РФ

14-апр-1964

14-окт-2004

Ермолаева

Анна

ул. Вавилова, д. 151, кв. 8

Иркутск

РФ

29-окт-1959

29-мар-1997

Таблица EventType    

КодТипа

Event (событие ) Type (тип )

1

Презентация товара

2

Корпоративное мероприятие

3

Частное мероприятие

4

Мероприятие по сбору средств

5

Выставка-продажа

6

Лекция

7

Концерт

8

Выставка

9

Уличная ярмарка

Таблица "Клиенты"    

КодКлиента

Компания

Контакт

1

Contoso, Ltd. НИИ

Николай Белых

2

Лесопитомник

Регина Покровская

3

Fabrikam

Елена Матвеева

4

Лесопитомник

Афанасий Быков

5

А. Datum

Лилия Медведева

6

Adventure Works

Максим Измайлов

7

железа

Арина Иванова

8

Художественная школа

Полина Кольцова

Таблица "Мероприятия"    

КодМероприятия

Event (событие ) Type (тип )

Клиент

Event (событие ) Date (Дата )

Цена

1

Презентация товара

Contoso, Ltd.

4/14/2011

10 000 ₽

2

Корпоративное мероприятие

Лесопитомник

4/21/2011

8000 ₽

3

Выставка-продажа

Лесопитомник

01.05.2011

25000 ₽

4

Выставка

НИИ железа

5/13/2011

4 500 ₽

5

Выставка-продажа

Contoso, Ltd.

5/14/2011

55 000 ₽

6

Концерт

Художественная школа

5/23/2011

12 000 ₽

7

Презентация товара

А. Datum

6/1/2011

15 000 ₽

8

Презентация товара

Лесопитомник

6/18/2011

21 000 ₽

9

Мероприятие по сбору средств

Adventure Works

6/22/2011

1300 ₽

10

Лекция

НИИ железа

6/25/2011

2450 ₽

279

Лекция

Contoso, Ltd.

04.07.2011

3800 ₽

рис

Уличная ярмарка

НИИ железа

04.07.2011

5500 ₽

Примечание: Действия, описываемые в данном разделе, предполагают, что таблицы "Клиенты" и "Типы мероприятий" находятся на стороне "один" отношения "один-ко-многим" с таблицей "Мероприятия". В данном случае таблица "Мероприятия" имеет с этими таблицами общие поля "КодКлиента" и "КодТипа". Итоговые запросы, описанные в следующих разделах, не будут работать, если эти связи отсутствуют.

Вставка данных примера в лист Excel

  1. Запустите Excel. Откроется пустая книга.

  2. Нажмите клавиши SHIFT + F11, чтобы вставить лист (вам потребуется четыре).

  3. Скопируйте данные из каждого примера таблицы на пустой лист. Добавление заголовков столбцов (первая строка).

Создание таблиц базы данных на основе листов

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

  2. Щелкните правой кнопкой мыши область навигации и выберите команду Вставить.

  3. Нажмите кнопку Да , чтобы подтвердить, что первая строка содержит заголовки столбцов.

  4. Повторите шаги 1-3 для каждого из оставшихся листов.

Поиск наиболее или более поздней даты

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

Создание простого запроса на набор значений

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

    Откроется диалоговое окно Добавление таблицы.

  2. Дважды щелкните таблицу Employees и нажмите кнопку Закрыть.

    Если используется пример данных, добавьте в запрос таблицу "Сотрудники".

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

    Если вы работаете с примером таблицы, то добавьте поля "Фамилия", "Имя" и "Дата рождения".

  4. В поле, которое содержит искомые наибольшие или наименьшие значения (при использовании примера таблицы — поле "Дата рождения), в строке Сортировка выберите порядок сортировки По возрастанию или По убыванию.

    При сортировке по убыванию будут возвращены самые последние даты, при сортировке по возрастанию — самые давние.

    Важно: В строке Сортировка следует установить значение только для полей, содержащих даты. Если порядок сортировки задан по другому полю, запрос не вернет ожидаемых результатов.

  5. На вкладке Конструктор в группе Сервис щелкните стрелку вниз рядом со значением Все (список Набор значений) и либо введите число записей, которые вы хотите просмотреть, либо выберите значение из списка.

  6. Чтобы выполнить запрос и отобразить результаты в режиме таблицы, нажмите кнопку Выполнить Изображение кнопки .

  7. Сохраните запрос как Некстбирсдайс.

Как вы видите, этот тип запросов на набор значений дает ответы на основные вопросы, например "Кто из сотрудников самый старший или самый молодой?". Ниже описано, как с помощью выражений и других условий создавать более точные и гибкие запросы. Запрос по описанным ниже условиям выдает ближайшие дни рождения у трех сотрудников.

Добавление условий в запрос

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

Совет:  Если вы хотите лучше понять, как работает этот запрос, переключитесь между режимом конструктора и режимом таблицы на каждом шаге. Если вы хотите просмотреть фактический код запроса, переключитесь в режим SQL. Чтобы переключиться между представлениями, щелкните правой кнопкой мыши вкладку в верхней части запроса и выберите нужное представление.

  1. В области навигации щелкните правой кнопкой мыши запрос Некстбирсдайс и выберите команду конструктор.

  2. В бланке запроса в столбце справа от даты рождения введите следующее:
    монсборн: DatePart ("m"; [ДеньРождения]).
    Это выражение извлекает месяц из даты рождения с помощью функции DatePart .

  3. В следующем столбце бланка запроса введите следующую команду:
    дайофмонсборн: DatePart ("d"; [ДеньРождения])
    это выражение извлекает день месяца из даты рождения с помощью функции DatePart .

  4. Снимите флажки в строке Показать для каждого из выражений, которые вы только что ввели.

  5. Щелкните строку Сортировка для каждого выражения и выберите вариант по возрастанию.

  6. В строке Условие отбора в столбце Дата рождения введите следующее выражение:
    месяц ([Дата рождения]) _гт_ month (Date ()) или month ([Дата рождения]) = Month (Date ()) and Day ([Дата рождения]) _гт_дай (Date ())
    this выражение выполняет следующие действия:

    • Month ( [Дата рождения]) _Гт_ month (Date ()) указывает, что Дата рождения каждого сотрудника попадает в будущий месяц.

    • Месяц ( [Дата рождения]) = Month (Date ()) and Day ([Дата рождения]) _гт_дай (Date ()) указывает, что если Дата рождения приходится на текущий месяц, день рождения приходится на текущий день или после него.

      Короче говоря, это выражение исключает все записи, в которых день рождения приходится между 1 января и текущей датой.

      Совет:  Дополнительные примеры выражений с условиями запроса см. в статье примеры условий запроса.

  7. На вкладке конструктор в группе Настройка запроса введите в поле return значение 3 .

  8. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить Изображение кнопки .

Примечание:  При использовании собственных данных вы можете видеть больше записей, чем вы указали. Если данные содержат несколько записей со значением, которое находится среди верхних значений, запрос вернет все эти записи, даже если он возвращает больше записей, чем нужно.

К началу страницы

Поиск наиболее или более последних дат для групп записей

Итоговый запрос используется для поиска самых ранних или последних дат для записей, которые попадают в группы, например событий, сгруппированных по городу. Итоговый запрос — это запрос на выборку, использующий агрегатные функции (такие как Group By, Min, Max, Count, Firstи Last) для вычисления значений для каждого выходного поля.

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

Совет:  Создание запросов в шагах является очень эффективной стратегией ответа на более сложные вопросы. Если у вас возникают проблемы при получении сложного запроса, подумайте, можно ли разбить его на несколько более простых запросов.

Создание итогового запроса

В этой процедуре для ответа на этот вопрос используется образец таблицы Events и образец EventType .

Когда самое последнее событие каждого типа события, исключая концертс?

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

  2. В диалоговом окне Добавление таблицы дважды щелкните таблицы события и EventType.
    Каждая таблица появится в верхней части конструктора запросов.

  3. Закройте диалоговое окно Добавление таблицы.

  4. Дважды щелкните поле EventType таблицы EventType и поле Евентдате из таблицы события, чтобы добавить поля в бланк запроса.

  5. В бланке запроса в строке Условие отбора поля EventType введите _лт__гт_концерт.

    Совет:  Дополнительные примеры выражений с условиями см. в статье примеры условий запроса.

  6. На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.

  7. В бланке запроса щелкните строку итоги в поле евентдате и выберите пункт максимум.

  8. На вкладке Конструктор в группе Результаты выберите команду Режим, а затем — пункт SQL.

  9. В окне SQL в конце предложения SELECT непосредственно после ключевого слова AS замените максофевентдате на мострецент.

  10. Сохраните запрос как Мострецентевентбитипе.

Создание второго запроса для отображения более подробных данных

В этой процедуре для ответа на этот вопрос используется запрос Мострецентевентбитипе из предыдущей процедуры:

Кто находился в самом последнем событии каждого типа?

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

  2. В диалоговом окне Добавление таблицы на вкладке запросы дважды щелкните запрос мострецентевентбитипе.

  3. На вкладке таблицы диалогового окна дважды щелкните таблицу "события" и таблицу "клиенты".

  4. В конструкторе запросов дважды щелкните следующие поля:

    1. В таблице Events дважды щелкните элемент EventType.

    2. В запросе Мострецентевентбитипе дважды щелкните Мострецент.

    3. В таблице "клиенты" дважды щелкните элемент "Организация".

  5. В бланке запроса в строке Сортировка столбца EventType выберите вариант по возрастанию.

  6. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

К началу страницы

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×