Как в access сделать запрос по месяцу?

Всем привет, сегодня разбираем функцию DateAdd в запросах Access. Если вы не знаете, как работает функция DateAdd в базе данных Microsoft Access, то дочитайте данную статью до конца.
На простых запросах мы разберем принцип работы встроенной функции DateAdd. Функция DateAdd в запросах Access применяется для добавления (вычитания) указанного интервала времени к дате.

Функция DateAdd в запросах Access

Синтаксис: DateAdd («интервал», число, дата).

Как в access сделать запрос по месяцу?

Функция DateAdd в запросах Access содержит 3 аргумента. Все аргументы обязательные.
1 аргумент — ИНТЕРВАЛ. Интервал это тот период времени, который необходимо добавить (вычесть) к требуемой дате.
2 аргумент — ЧИСЛО.

Это то количество заданных интервалов, которое будет добавлено к дате.
3 аргумент — ДАТА. Дата, к которой добавляются интервалы с помощью функции DateAdd.

Все параметры первого аргумента — интервала представлены ниже:

Как в access сделать запрос по месяцу?

Приведем простой пример и посмотрим как работает функция DateAdd в запросах Access.
Создадим таблицу, которая будет состоять из 2 полей: «начальная дата» и «начальное время». Оба поля имеют тип «Дата/Время». Поле «начальная дата» — формат «краткий формат даты», «начальное время» — формат «краткий формат времени».

Как в access сделать запрос по месяцу?

Заполним таблицу произвольными данными.

Как в access сделать запрос по месяцу?

Далее создадим простой запрос, где к полю «начальная дата» добавим 10 дней.
Добавим в запрос поле «начальная дата». Добавим новое вычисляемое поле:

Как в access сделать запрос по месяцу?

Данный пример демонстрирует основной принцип работы функции DateAdd в запросах Access: к дате прибавляется 10 дней.

Как в access сделать запрос по месяцу?

Как в access сделать запрос по месяцу?

Рассмотрим следующий пример, где используется функция DateAdd в запросах Access.
Добавим к дате 10 месяцев. для этого достаточно поменять значение интервала с «d» на «m».

Как в access сделать запрос по месяцу?
Как в access сделать запрос по месяцу?

Рассмотрим следующий пример, где используется функция DateAdd в запросах Access.
Добавим к дате 10 лет. для этого достаточно поменять значение интервала с «m» на «yyyy».

Как в access сделать запрос по месяцу?

Рассмотрим следующий пример, где используется функция DateAdd в запросах Access.
Добавим к дате 1 квартал. для этого достаточно поменять значение интервала с «yyyy» на «q».

  • Функция DateAdd в запросах Access не только прибавляет указанный интервал к дате, но и вычитает указанный интервал из даты.
    Пример вычитания из даты 10 лет представлен ниже:

Хотите больше примеров, где разбирается функция DateAdd в запросах Access? Например как можно использовать DateAdd в формах Access? Переходите по ССЫЛКЕ.

Если вам нужна готовая база данных Access, то ознакомьтесь со списком представленным ЗДЕСЬ.

Источник: https://accesshelp.ru/funkcija-dateadd-v-zaprosah-access/

Как в access сделать запрос по месяцу?

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

Конструирование запросов на выборку с условиями отбора

Рассмотрим запросы на выборку в Access на примере получения информации из таблицы ТОВАР базы данных Поставка товаров.

Задача 1. Пусть необходимо выбрать ряд характеристик товара по его наименованию.

  1. Для создания запроса в окне базы данных выберите вкладку ленты — Создание (Create) и в группе Запросы (Queries) нажмите кнопку Конструктор запросов (Query Design). Откроется пустое окно запроса на выборку в режиме конструктора — ЗапросN (QueryN) и диалоговое окно Добавление таблицы (Show Table) (рис. 4.2).
  2. В окне Добавление таблицы (Show Table) выберите таблицу ТОВАР и нажмите кнопку Добавить (Add). Выбранная таблица будет отображена в области схемы данных запроса. Закройте окно Добавление таблицы (Show Table), нажав кнопку Закрыть (Close).

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

В данном случае одну таблицу ТОВАР. Таблица представлена списком полей. Первая строка в списке полей таблицы, отмеченная звездочкой (*), обозначает все множество полей таблицы.

Нижняя панель является бланком запроса, который нужно заполнить.

Как в access сделать запрос по месяцу?

Кроме того, на ленте появляется и автоматически активизируется новая вкладка Работа с запросами | Конструктор (Query Tools | Design) (на рис. 4.

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

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

  1. Для удаления любой таблицы из схемы данных запроса установите на нее курсор мыши и нажмите клавишу . Для добавления ― нажмите кнопку Отобразить таблицу ( Show Table) в группе Настройка запроса (Query Setup) на вкладке Работа с запросами | Конструктор (Query Tools | Design) или выполните команду Добавить таблицу (Show Table) в контекстном меню, вызываемом на схеме данных запроса.
  2. В окне конструктора (рис. 4.4) последовательно перетащите из списка полей таблицы ТОВАР поля НАИМ_ТОВ, ЦЕНА, НАЛИЧИЕ_ТОВ в столбцы бланка запроса в строку Поле (Field).
  3. Для включения нужных полей из таблицы в соответствующие столбцы запроса можно воспользоваться следующими приемами:
    • в первой строке бланка запроса Поле (Field) щелчком мыши вызвать появление кнопки списка и выбрать из списка нужное поле. Список содержит поля таблиц, представленных в схеме данных запроса;
    • дважды щелкнуть на имени поля таблицы в схеме данных запроса;
    • для включения всех полей таблицы можно перетащить или дважды щелкнуть на символе * (звездочка) в списке полей таблицы в схеме данных запроса.
  4. Если вы по ошибке перетащили в бланке запроса ненужное поле, удалите его. Для этого переместите курсор в область маркировки столбца сверху, где он примет вид черной стрелки, направленной вниз, и щелкните кнопкой мыши. Столбец выделится. Нажмите клавишу или выполните команду Удалить столбцы (Delete Columns) в группе Настройка запроса (Query Setup).
  5. В строке Вывод на экран (Show) отметьте поля, иначе они не будут включены в таблицу запроса.
  6. Запишите в строке Условия отбора (Criteria) наименование товара, как показа-но в бланке запроса на рис. 4.4. Так как выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =. Используемое в выражении текстовое значение вводится в двойных кавычках, которые добавляются автоматически.
  7. Выполните запрос, щелкнув на кнопке Выполнить (Run) или на кнопке Режим (View) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записью из таблицы ТОВАР, отвечающей заданным условиям отбора.

ЗАМЕЧАНИЕ Окно запроса в режиме таблицы аналогично окну просмотра таблицы базы данных. Через некоторые таблицы запроса может производиться изменение данных базовой таблицы, лежащей в основе запроса.

Запрос, просматриваемый в режиме таблицы, в отличие от таблицы базы данных Access 2010, не имеет столбца Щелкнуть для добавления (Click to Add), предназначенного для изменения структуры таблицы.

В этом режиме на вкладке ленты Главная (Home) доступны те же кнопки, что и при открытии таблицы базы данных.

Источник: http://word-office.ru/kak-v-access-sdelat-zapros-po-mesyacu.html

Запросы в access

Как в access сделать запрос по месяцу?

Запросы в access – объекты базы данных, извлекающие из таблиц или других запросов информацию согласно заданным условиям. Это виртуальные таблицы (существующие в оперативной памяти компьютера.

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

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

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

  • Основные отличия запросов от расширенного фильтра:
  • — используя реляционные связи, можно применять запрос к нескольким таблицам (запросам);
  • — на экран можно выводить только необходимые поля;
  • — в запросе можно переставлять поля в любом порядке;
  • — команды фильтра сохраняются временно, запрос хранится постоянно как объект базы данных;
  • — применение фильтра и сортировки возможно только в открытой таблице, запросе и форме, а запрос работает с таблицами и запросами, которые не надо открывать;
  • — в запросе можно выводить на экран только необходимые (по количеству или процентному соотношению) записи (например, для лучшей десятки продаж можно отсортировать сумму продаж по возрастанию, а в свойствах запроса «Набор значений» (в режиме конструктора) ввести число 10;
  • — фильтры не могут создавать вычисляемые поля.

Обилие всяких кнопочек и настроек может постоянно сбивать вас с толку. Также может появиться страх при первом открытии программы.

Самым распространённым является запрос на выборку.

В строке условия отбора значение даты вводится, окруженное знаками #. Например, Between #01.01.2010# And #31.12.2010# — будут отобраны записи в диапазоне с 1 января по 31 декабря 2010 года.

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

При сортировке нескольких полей порядок сортировки идёт слева направо.

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

При операциях с числами программа использует математические знаки, например «+». Но при соединении текстовых полей знак «+» заменяется знаком «&» (амперсанд). Этот знак выполняет операцию конкатенации, т. е. соединяет между собой строки и подстроки, например, ФИО: [Фамилия] & » » & [Имя] & » » & [Отчество] (в кавычках заключена константа «пробел»).

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

  1. При создании вычисляемого поля надо ввести название столбца, после него знак двоеточия, а затем вычисляемое выражение (как в вышеупомянутом примере с ФИО).
  2. Для очистки запроса есть команда меню Правка – Очистить бланк.
  3. Нельзя добавлять и изменять записи в запросах, если:
  4. —  две таблицы запроса связаны отношением «один-ко-многим» и в таблице «один» не задан первичный ключ;
  5. —  в запросе используются рекурсивные соединения (связь установлена между полями одной таблицы (запроса));
  6. —  в запросе применяются статистические функции SQL.
  7. Условия, при которых можно добавить или обновить записи в запросе:
  8. —  таблица является единственной в запросе;
  9. —  таблицы в запросе связаны отношением «один-к-одному»;
  10. —  если таблицы в запросе связаны отношением «один-ко-многим», можно изменять поля только в таблице «многие».
  11. В таблице «один», связанной с другой таблицей отношением «один-ко-многим», можно изменять поля только в том случае, если ни одно поле таблицы «многие» не включено в результат запроса, а используется только для отбора записей.
  12. Если условия введены в одну строку сетки конструктора запросов, результат будет содержать только записи, удовлетворяющие всем условиям.
  13. Если хотим, чтобы запрос извлекал все записи, удовлетворяющие хотя бы одному из условий, одно условие надо ввести в строку «Условие отбора», а другое в строку «Или».
  14. В меню «Сервис»-«Параметры»-«Таблицы и запросы»-«Конструктор запросов»-«Вывод всех полей» надо отключить флажок, иначе при создании нового запроса будут автоматически добавляться все поля базовой таблицы (запроса).
Читайте также:  Как сделать метод монте карло в excel?

Групповые операции (перекрёстные запросы в access)

Аксесс довольно сложная программа. Это подтверждает тот факт, что в интернете можно найти массу информации по ней. Однако, вы знаете что на самом деле достаточно знать лишь 20% инструментов, чтобы создавать и настраивать 80% баз данных в программе? И научиться этому можно после изучения 40 специальных видеоуроков, в которых описана самая суть без воды.

При помощи перекрёстного запроса вычисляются итоговые значения (суммы, количество значений, минимальные и максимальные значения и т. д.) данных и группируются по заголовкам столбцов и по заголовкам строк. Анализ информации значительно упрощается.

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

По умолчанию строка «Групповая операция» в режиме конструктора скрыта.

Группировка

Инструкция «Группировка» разбивает результаты запроса по каждому уникальному значению поля (полей). Например, если в поле Страна встречается 20 раз Литва, 30 раз Польша, 50 раз Чехия, то при группировке по этому полю будет всего три записи – по одной на каждую страну.

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

В Литве пять поставщиков, а, следовательно, уникальных записей для Литвы уже будет пять, а не одна).

Инструкция Группировка автоматически задаёт сортировку в алфавитном порядке. Для изменения порядка сортировки надо явно указать программе параметры в строке «Сортировка».

Управляющие запросы

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

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

Создаёт таблицу, содержащую необходимые данные, извлекая требуемые записи из одной таблицы и добавляя их во вновь созданную. Можно этот запрос использовать для создания резервной копии данных или архивных записей.

Есть возможность создания новой таблицы в другой базе данных, выбрав свойство «Другая база данных» и введя имя базы в поле «Имя файла».

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

Перед выполнением запроса можно посмотреть, что получится, отобразив запрос в режиме таблицы. Создание физической таблицы произойдёт только после нажатия кнопки «Запуск».

Можно включить в новую таблицу вычисляемое поле. При создании таблицы поле станет заполненным данными.

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

Обновление

Позволяет изменять (обновлять) соответствующие значения в таблицах (одной или нескольких). Сразу создаётся обычный запрос на выборку и только затем на его основе запрос на обновление.

Добавление

Запрос на добавление извлекает записи из одной таблицы и добавляет их в конец другой (других).

Можно применить, если надо добавить большое количество новых записей (новые поставщики и потребители и т. д.). Запрос выполняется один раз, иначе одни и те же записи будут добавлены неоднократно.

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

Удаление

Удаляет указанные записи в таблицах (одной или нескольких).

Перед выполнением запроса на удаление надо создать такой же запрос на выборку. Лишь убедившись, что отобраны нужные записи, меняем тип запроса «Выборка» на «Удаление».

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

Запрос с параметром

Хотите узнать какие 35 инструментов нужно знать, чтобы научиться создавать базы данных в Аксесс?

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

Для поля, которое предполагается использовать как параметр, введите в ячейку строки «Условие отбора» выражение с текстом приглашения, заключенным в квадратные скобки.

Источник: http://samoychka.ru/zaprosy-v-access.html

Запрос по месяцам и кварталам

 normandia   (2005-04-25 16:12) [0]

Есть таблица видафамилия      дата_оплаты     суммаИванов      01.01.2004       1500Иванов      01.03.2004       2700Петров      01.03.2004       2800Сидоров     01.05.2004       3200Петров      01.05.

2004       1260Нужен запрос с результатом с суммами по месяцам и итогами по кварталам и с группировкой по фамилиям видафамилия   январь февраль март 1квартал апрель май июнь 2кварталИванов    25000   16000Петров    15000             и т.д.

Сидоров   25000Помогите, люди добрые.

 Val ©   (2005-04-25 16:25) [1]

Хорошо бы хранимой процедурой.

 Johnmen ©   (2005-04-25 16:28) [2]

Чтоюы так сделать, придётся иметь не менее 15 вложенных запросов к основному. Тормоза…

 raidan ©   (2005-04-25 16:29) [3]

>Val ©   (25.04.05 16:25) [1] А иначе будет тупейший селект с выбором значений 16 раз (если не использовать with as, конечно) 🙂

 stud ©   (2005-04-25 17:49) [4]

а если хп, одним основным запросом, а с помощью переменных/условий раскидывать по месяцам?

 stud ©   (2005-04-25 17:53) [5]

группировать запрос по клиенту и (месяцу и году).кол-во выходных параметров постоянно, наверное не так уж и сложно

 Val ©   (2005-04-25 17:54) [6]

>[4] stud ©   (25.04.05 17:49)передаем id чела и период — получаем сумму, потом комбинируем при выводе как хотим.

 Johnmen ©   (2005-04-25 17:57) [7]

>stud ©   (25.04.05 17:49) [4] Так и надо (Val уже сказал про ХП).

 Fay ©   (2005-04-25 19:25) [8]

Какой движок?!

 Johnmen ©   (2005-04-25 21:59) [9]

>Fay ©  (25.04.05 19:25) [8]>Какой движок?!1.6 литра, 16 клапанов, 110 лошадей

 normandia   (2005-04-26 08:26) [10]

После перерыва я снова в инете.Спасибо за внимание к вопросу.Я насчет ХП сразу подумал, под Interbase без проблем.Но попросили подобное сделать в MS Access (причем прямо в самой программе Access, без спец. программы на Delphi), а я с ним не очень хорошо знаком.Как там насчет ХП?Сейчас и сам тоже поковыряю его на этот предмет.Времени немного есть.

 Anatoly Podgoretsky ©   (2005-04-26 09:07) [11]

Типичный куб

 msguns ©   (2005-04-26 09:27) [12]

Для начала я все ж таки определился бы с формой журнала — приведенный в сабже вид не существует в официальной отчетности и, видимо, придуман тетей машей. Для обычных журналов промежуточные итоги по кварталам не нужны.

В любом случае для получения такого журнала (для отчетов в пенсионный фонд, видимо) надо создать временную таблицу, куда выборками запихивать подсчитанное из БД. Таблица нужна хотя бы по двум причинам:1. Ее, возможно, будут править ручками2.

Ее надо хранить энное количество времени.

 normandia   (2005-04-26 09:59) [13]

Форма придумана дядей Костей.Раньше он вел ее в Word для унутреннего пользования (для себя).Когда стала слишком большой, задумался об автоматизации.

В Access я ему быстренько состряпал выборку по указанному человеку за указанный любой интервал времени.А потом собрался сделать указанную итоговую форму и уперся.

Не хотелось бы городить базу в Interbase, так как в принципе она небольшая. Лучше бы остаться в рамках Access, так как он уже есть.

 Sergey13 ©   (2005-04-26 10:17) [14]

2 [13] normandia   (26.04.05 09:59)Не понимаю я твоих метаний/сомнений. Если ты знаешь, как сделать на ИБ в ХП, то почему не можешь сделать то-же самое на делфовом клиенте? Какая разница то? Тем паче база «в принципе она небольшая».Получи группировку по юзерам/месяцам и крути на клиенте как хочешь.

 Val ©   (2005-04-26 10:42) [15]

> [14] Sergey13 ©   (26.04.05 10:17)Судячи з усього…он делает на экцесс без делфевых и прочих клиентов. Тогда, лучший способ, наверное, таки временная таблица, хп-то там нет, насколько я понимаю.Хотя черт его знает — там бейсик не прикручен?(это больше к знатокам экцесса.)

Читайте также:  Как сделать расстояние между буквами в word?

 Sergey13 ©   (2005-04-26 10:47) [16]

2[15] Val ©   (26.04.05 10:42)Хм. Действительно. Сори.

 msguns ©   (2005-04-26 12:02) [17]

>normandia   (26.04.05 09:59) [13] >Форма придумана дядей Костей.Раньше он вел ее в Word для унутреннего пользования (для себя).Когда стала слишком большой, задумался об автоматизации. Значицца так:Таблицу размечаем в Екселе.

Оттуда намного удобнее печатать и Константину удобнее будет с ворда перейти на ексель, чем в акцесс, где формы неудобные (для непривыкших).В ексель запихиваем данные из Акцеса.

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

Два экзешника+макросы — вот, собсно, и все, что надо написать. Есть, конечно, маленькие траблы по «забору» из екселя, связанные со «стыковкой» записей, но это уже дело техники ;)) Во как я придумал !!!

 normandia   (2005-04-26 19:57) [18]

> msguns ©   (26.04.05 12:02) [17] Круто загнул. Уважаю за размах.Еще можно подключить winamp, чтобы все это выполнялось под танец с саблями или под гимн Советского Союза.Дядя Костя обомлеет.

Но лучше сначала конечно помучиться.Во-первых, хочу пошарить, что в Access есть типа ХП.Во-вторых, очень смутно подозреваю, что могут помочь перекрестные запросы с подзапросами (хотя вряд ли).

В-третьих, пошел до завтра домой со всем этим разбираться.

 aus   (2005-04-26 21:06) [19]

Добавь таблицу примерно такой структуры:[Номер поля][Дата с][Дата по]Запрос составляй с внешним объединением с этой таблицей, из этого запроса делай перекрестный, где [Номер поля] будет именем столбца, а фамилии — строками.Мудрёно загнул, но вроде понятно, если вникнуть…

 sniknik ©   (2005-04-26 21:48) [20]

чего же ты сразу не написал что у тебя Access? (тему видел и проигнорировал, сейчас заглянул случайно, просто больше ничего интересного нет…)ХП тебе не поможет, в аксесе они убогие в одну команду, зато точно поможет (не раз делалось аналогичное) инструкция TRANSFORM PIVOT, транспонирует таблицу в Access, см. в нем хелп.

не знаю как в самом аксесе, а в дельфях (с аксесовской базой) я бы сделал простое транспонирование по месяцам а «1квартал/2квартал/…» вычисляемыми полями.получилось бы очень просто, даже элементарно, хотя можно и кварталы просчитать. выделить через iif прямо в запросе (в условии не получится…

наверное, а может и получится но будут вложенные запросы, тормоза…)

 sniknik ©   (2005-04-26 22:05) [21]

вот в принципе запрос, только поля надо будет «развести»/поставить по местам (т.е. с первого места «1квартал» на четвертое после третьего месяца, и месяца переназвать/дисплейнейме поставить «январь» вместо 1-ци и т.д.).

TRANSFORM Sum([сумма]) SELECT  [фамилия],  Sum(iif(Month([дата_оплаты]) >=1 and Month([дата_оплаты]) =4 and Month([дата_оплаты]) =7 and Month([дата_оплаты]) =10 and Month([дата_оплаты]) sniknik ©   (26.04.05 22:05) [21]Спасибо.

Дома вечером посмотрел перекрестные запросы и сразу нашел TRANSFORM PIVOT.Сделал два запроса: один по месяцам, другой по кварталам.Теперь хочу попробовать смешанный.

А не подскажет кто, что конкретно делает TRANSFORM PIVOT?А то получил результат, но не совсем понял, как оно работает.Хочу уяснить на будущее.

 sniknik ©   (2005-04-28 00:09) [23]

> Теперь хочу попробовать смешанный.вот этот > [21] смешанный.

 normandia   (2005-04-29 09:59) [24]

> sniknik ©   (26.04.05 22:05) [21] > вот в принципе запрос, только поля надо будет «развести»/поставить > по местам (т.е. с первого места «1квартал» на четвертое > после третьего месяца, и месяца переназвать/дисплейнейме > поставить «январь» вместо 1-ци и т.д.).Прошу прощения за глупый вопрос.

А как развести и переназвать?Напоминаю, пытаюсь все сделать только в Access без Delphi.Получилось только вот так, в тупую:TRANSFORM Sum([по всем исполнителям].[сумма]) AS суммаSELECT [по всем исполнителям].[фамилия], Sum(IIf(Month([по всем исполнителям].[дата оплаты])=1,[по всем исполнителям].

[сумма],0)) AS январь, Sum(IIf(Month([по всем исполнителям].[дата оплаты])=2,[по всем исполнителям].[сумма],0)) AS февраль, Sum(IIf(Month([по всем исполнителям].[дата оплаты])=3,[по всем исполнителям].[сумма],0)) AS март, Sum(IIf(Month([по всем исполнителям].[дата оплаты])>=1 And Month([по всем исполнителям].

[дата оплаты])=4 And Month([по всем исполнителям].[дата оплаты])=7 And Month([по всем исполнителям].[дата оплаты])=10 And Month([по всем исполнителям].[дата оплаты]) А как развести и переназвать?в дельфях легко. двойной клик на гриде, добавляеш колонки в нужном порядке, и там же есть displayname колонки. это все. в access х.з.

не работаю в access хотя и использую access-овские базы (почемуто часто не видят разницы между этим ;), но должно быть чтото подобное (могу посмотреть, найти, но лень… по той же причине, не работаю, и не понадобится, и нужно не мне а тебе. иши).Polevi ©   (29.04.

05 10:05) [25]почему проигнорировали? я к примеру обдумывал этот вариант… но, именно для access это лишнее, результат достигается проше. (имхо конечно)

 Polevi ©   (2005-04-29 10:59) [27]

>sniknik ©   (29.04.05 10:44) [26] проблема в том что большинство (имхо, сужу по вопросам) даже не понимают такое куб и многомерный анализ данныхи начинают тонны TRANSACT SQL советовать

 AlexO   (2005-04-29 16:51) [28]

Я лично делаю так:SELECT [фамилия], SUM(case when Month([дата_оплаты]) = 1 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 2 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 3 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 4 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 5 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 6 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 7 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 8 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 9 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 10 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 11 then [сумма] else 0 end),SUM(case when Month([дата_оплаты]) = 12 then [сумма] else 0 end),FROM [Tаблица]WHERE [дата_оплаты]) between [data1] and [data2]GROUP BY [фамилия]

Источник: http://delphimaster.net/view/3-1114431135

Создание условных запросов и запросов на выборку

  • Лабораторная работа № 3
  • Цель работы: создание фильтров, условных запросов и запросов на выборку на основе учебной базы «Библиотека».
  • Краткие теоретические сведения

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

Например, нам нужно просмотреть все заказы, сделанные какой-либо фирмой, либо все заказы, сделанные за определенный месяц и т. п. В Microsoft Access поставленные задачи можно решать при помощи фильтров либо при помощи запросов.

Фильтры.Фильтры обычно используются при работе с одной таблицей. Они находят широкое применение при проектировании и эксплуатации баз данных в Microsoft Access. Преимуществом перед запросами является их простота. Кроме того, фильтры не занимают лишнего места на диске, в отличие от запросов. Для фильтрации данных в таблицах можно воспользоваться следующими способами:

Поиск данных. Чтобы выполнить простой поиск по одному полю, сначала выделите его (поместив курсор на заголовок поля, при этом записи в поле изменят цвет на инверсный). Затем в меню при помощи команд «Правка ® Найти» перейдите к диалоговому окну «Поиск в поле».

В поле ввода «Образец» укажите значение, которое Access должен найти. В образе поиска можно использовать подстановочные символы. Символ * (звездочка) заменяет строку любой длины, а? (знак вопроса) – любой произвольный символ.

Например, «*AB??DE*» совпадает с «ABERDEEN» и «TABIDEA», но не с «LABDEPARTMENT».

Фильтр по выделенному. Предположим, вам нужно в базе данных «Библиотека» выбрать все записи таблицы «Издательства», в которых в качестве города указан город Москва.

Найдите одну запись, в которой указан город Москва, щелкните правой кнопкой мыши по этому полю и выберите «Фильтр по выделенному» либо через меню «Запись ® Фильтр ® Фильтр по выделенному». В результате будут отображены все записи, у которых поле «Город» имеет значение «Москва».

Опция «Исключить выделенное» – наоборот, оставляет на экране поля, значения которых не совпадают с выделенной записью.

Чтобы отфильтровать записи по значениям в различных полях, используют опцию (пиктограмму) «Изменить фильтр», которая позволяет сформировать строку с необходимыми значениями с помощью простейших алгебраических и логических операторов. Просмотреть результат работы такого фильтра можно после нажатия на пиктограмму «Применить фильтр».

Запросы. При выполнении запроса происходит составление набора записей, содержащего отобранные данные.

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

Однако в отличие от реальной таблицы набор записей физически не существует в базе данных. Access создает его из данных таблиц только во время выполнения запроса.

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

Существует немало различных видов запросов, но самые простые из них и к тому же используемые наиболее часто – это запросы на выборку. С них и принято начинать знакомство с созданием запросов.

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

Как и другие объекты Access, запросы можно создавать автоматически с помощью Мастера или вручную в режиме Конструктора.

Для создания запросов к базам данных существует специальный язык запросов. Он называется SQL (Structured Query Language – структурированный язык запросов). Но Access использует более простое средство, которое называется бланком запроса по образцу. С его помощью можно сформировать запрос простыми приемами, перетаскивая элементы запроса между окнами.

Рассмотрим выбор данных из одной таблицы на примере учебной базы данных «Библиотека». В данном примере организуем выборку читателей с фамилией «Бобров». Такой запрос будет называться условным.

Читайте также:  Как сделать слово на всю страницу в word?

Перейдите на вкладку «Запросы» и выберете «Создание запроса в режиме конструктора». Далее вам будет предложен список таблиц. Выберите таблицу «Читатели» и нажмите кнопку «Добавить». Так как мы ограничиваемся только одной таблицей, закройте это диалоговое окно. Приступим к заполнению конструктора запроса.

В строке запроса «Поле» в первом столбце выберите поле «Имя», во втором – «Отчество», в третьем – «Фамилия». Тот же результат будет получен, если последовательно выбирать эти поля в таблице двойным щелчком по нужному полю. В первом столбце, в строке «Условие отбора» введите фамилию: Бобров. Запрос должен иметь следующий вид (рис. 8).

Поле: Имя Отчество Фамилия
Имя таблицы: Читатели Читатели Читатели
Сортировка:
Вывод на экран: ü ü ü
Условие отбора: Бобров
Или:

Рис. 8. Параметры запроса на выборку

Закройте окно конструктора запроса. Перед закрытием Access запросит имя, под которым следует сохранить запрос. Введите «Бобров». Для того чтобы просмотреть результат работы запроса, наведите на него указатель и нажмите кнопку «Открыть». В результате появится окно (рис. 9).

Имя Отчество Фамилия
4 Бобров Виктор Иванович
S

Рис. 9. Результат выполнения запроса на выборку

Теперь рассмотрим пример выборки данных из нескольких таблиц. Просмотрим читателей, которые в 1996 г. заказали «Сборник задач» М. И Сканави. При этом пусть нам требуется вывести только название книги и фамилию читателя.

Для начала по вышеописанной процедуре откройте окно конструктора нового запроса и добавьте таблицы «Читатели», «Книги», «Выдача книг».

Источник: https://naparah.com/informacionnye-osnovy-sistem-upravleniya/10082073.html

Запрос MS Access для расчета комиссии по месяцам

Прежде всего позвольте мне сказать, что писать SQL в Access — это не мой сильный костюм. Поэтому я сделал это, используя три запроса Access. Хотя это может быть не самый эффективный способ справиться с этим, мы надеемся, что с помощью трех отдельных запросов будет объясняться метод, лежащий в основе того, что я делаю немного яснее, чем смешивать все это в один запрос.

Запрос 1: Определяет количество месяцев для каждой продажи и присоединяется к таблице комиссионных. Мы делаем наш первый фильтр и исключаем любые изменения комиссии после даты продажи. Это создаст больше записей, чем нам нужно, но мы их позже фильтруем.

SELECT Employees.StartDate AS Emp_StartDate, Targets.StartDate AS Tar_StartDate, sales.SalesDate, Employees.EmployeeID, Targets.MonthsOfService
FROM Targets, sales INNER JOIN Employees ON sales.EmployeeID = Employees.EmployeeID
WHERE (((Targets.StartDate)12,12,DateDiff(«m»,[Employees].[StartDate],[sales].[SalesDate]))))

Запрос 2: теперь мы отфильтровываем записи. получение только максимальной даты для каждой продажи и записи Комиссии до даты продажи.

SELECT Query1.Emp_StartDate, Max(Query1.Tar_StartDate) AS MaxOfTar_StartDate, Query1.SalesDate, Query1.EmployeeID, Query1.MonthsOfService
FROM Query1
GROUP BY Query1.Emp_StartDate, Query1.SalesDate, Query1.EmployeeID, Query1.MonthsOfService;

Запрос 3: теперь мы объединяем результаты с исходными таблицами, чтобы дать Работнику данные о продажах и наиболее применимые данные комиссии.

SELECT Employees.FirstName, Employees.LastName, Employees.StartDate, sales.SalesDate, sales.amount, Targets.CommissionRate
FROM ((Query2INNER JOIN Employees ON Query2.EmployeeID = Employees.EmployeeID) INNER JOIN sales ON (Query2.SalesDate = sales.SalesDate) AND (Employees.EmployeeID = sales.EmployeeID)) INNER JOIN Targets ON (Query2.MonthsOfService = Targets.MonthsOfService) AND (Query2.MaxOfTar_StartDate = Targets.StartDate);

Если вы напишете это в SQL, он будет выглядеть примерно так, как показано ниже. Это не будет работать в Access, но я просто хотел дать представление о том, как это будет выглядеть, если сделать это в одном запросе в SQL

SELECT Employees.FirstName,
Employees.LastName,
Employees.StartDate,
Sales.SalesDate,
Sales.Amount,
Targets.CommissionRate

FROM Employees, Targets
INNER JOIN Sales
ON Sales.EmployeeID = Employees.EmployeeID
INNER JOIN (SELECT CommissionQuery.Emp_StartDate,
Max(CommissionQuery.Tar_StartDate) MaxOfTar_StartDate,
CommissionQuery.SalesDate,
CommissionQuery.EmployeeID,
CommissionQuery.MonthsOfService

FROM (SELECT Employees.StartDate Emp_StartDate,
Targets.StartDate Tar_StartDate,
sales.SalesDate,
Employees.EmployeeID,
Targets.MonthsOfService
FROM Targets, sales
INNER JOIN Employees
ON sales.EmployeeID = Employees.EmployeeID
WHERE Targets.StartDate 12,12,DateDiff(«m»,[Employees].[StartDate],[sales].[SalesDate]
) CommissionQuery
GROUP BY CommissionQuery.Emp_StartDate, CommissionQuery.SalesDate, CommissionQuery.EmployeeID, CommissionQuery.MonthsOfService;
) MaxCommission
ON MaxCommission.SalesDate = Sales.SalesDate
AND MaxCommission.MaxofTar_StartDate = Targets.StartDate

Источник: http://qaru.site/questions/10672372/ms-access-query-to-calc-commission-by-month

Создание запросов в СУБД Access 2007

  • Губская Ольга Васильевна
  • Тема урока: Создание запросов в СУБД Access
  • 11 класс
  • Цель урока: Повторить основные понятия темы Базы данных, Системы управления базами данных; познакомить учащихся с различными способами создания запросов в БД; научить отбирать записи по нескольким условиям, использовать выражения в запросах
  • Тип урока, продолжительность урока.
  • Комбинированный урок, 45 минут.
  • Средства обучения.
  • Технические средства: — мультимедийный проектор.
  • Программные средства обучения: — программа MS Access 2007, MS PowerPoint 2007.
  • Информационные средства: — созданная учителем база данных «Школьная библиотека», презентация «Создание запросов в СУБД Access 2007», задания для компьютерного практикума и самостоятельной работы; тестовые задания.
  • План урока:
  1. Организационный момент (1 минута)

  2. Постановка темы и целей урока (1 минута)

  3. Фронтальный опрос (7 минут)

  4. Ознакомление с новым материалом (15 минут)

  5. Первичное осмысление и применение изученного. — Компьютерный практикум (10 минут) — Самостоятельная работа, тестирование по теме (8 минут)

  6. Подведение итогов урока, выставление оценок (2 минуты)

  7. Домашнее задание (1 минута)

  1. Ход урока
  2. 1. Организационный момент
  3. 2. Постановка темы и целей урока
  4. Слайд 1
  5. Мы продолжаем изучать базы данных, на прошлых уроках вы познакомились с понятием базы данных, с понятием СУБД, с различными классификациями баз данных, с полями и записями, с типами данных и с операциями над информацией в базах данных. Тема сегодняшнего урока: «Создание запросов в СУБД Access 2007»
  6. Слайд 2
  7. Итак, на этом уроке мы:
  8. 1. Повторим основные понятия темы Базы данных, Системы управления базами данных;
  9. 2. Познакомимся с различными способами создания запросов в БД;

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

3. Фронтальный опрос

Слайд 3

Чтобы повторить основные понятия темы, я предлагаю вам «прогуляться» по полю понятий. Выбираете номер овала, появляется термин и вы формулируете соответствующее правило. (Приложение 1)

4. Ознакомление с новым материалом

Вы научились создавать таблицы, формы. На очереди запросы. Так что же такое запрос?

Слайд 4

Запрос – это требование на отбор записей, хранящихся в таблицах или на выполнение определённых действий с ними.

Запрос это временная таблица. Это значит, что данные в запросах не хранятся постоянно, а только временно вызываются из таблицы по заданному шаблону, в момент активизации запроса. Поэтому в базе данных постоянно сохраняется только шаблон вызова данных, а не сама информация. Следовательно, запрос не занимает много места в БД.

Запросы позволяют:

  1. выбирать нужные поля из разных таблиц БД;

  2. фильтровать и сортировать данные;

  3. производить расчёты;

  4. группировать записи, рассчитывая различные итоговые значения;

  5. вносить изменения сразу в несколько записей;

  6. создавать таблицы как результат запроса.

Слайд 5

Какими бывают запросы?

  1. Запрос на выборку. Осуществляет загрузку и отображение записей в режиме таблицы.

  2. Запрос на изменение. Выполняет операции с записями, удовлетворяющими заданным критериям.

  • а) запрос на удаление (удаляет заданные записи из таблицы);
  • б) запрос на обновление (изменяет соответствующие записи таблицы);
  • в) запрос на добавление (добавляет в конец таблицы новые записи соответствующие условиям отбора).
  1. Запрос с параметрами. После запуска на выполнение просит ввести значения определенных параметров.

  2. Перекрёстный запрос. Позволяет выполнить подсчёты по данным одного поля таблицы и группировать результаты.

Слайд 6

Способы создания запросов

  1. SQL;

  2. Конструктор;

  3. Мастер.

Существует универсальный язык запросов, на котором формулируются запросы во многих СУБД. Он называется SQL (Structured Query Language [strʌk.tʃəd ˈkwɪə.

ri ˈlæŋɡwɪdʒ]) – структурированный язык запросов. В большинстве современных СУБД существуют вспомогательные средства для составления запросов, позволяющие обходиться без изучения SQL.

В MS Access это конструктор запросов.

  1. Простой запрос на выборку или один из 3-х специальных запросов можно создать с помощью Мастера, но конструктор является более универсальным способом создания запросов.
  2. Слайд 7
  3. Итак, запрос на выборку — это производная таблица, которая содержит те же структурные элементы, что и обычная таблица (столбцы-поля и строки), и формируется на основе фактических данных системы.

Например, есть база данных Школьная библиотека, в которой создана таблица Книги. Запрос на выборку записей по полям Автор, Название, Год издания будет выглядеть как на слайде.

  • Рассмотрим процесс создания этого запроса с помощью Мастера.
  • Слайд 8
  • 1 шаг – на вкладке Создание выбираем Мастер запросов.
  • 2 шаг – в диалоге Новый запрос выбираем Простой запрос à ОК
  • Слайд 9
  • 3 шаг – в диалоге Создание простых запросов выбираем из списка таблицу
  • Слайд 10
  • 4 шаг – перемещаем из списка Доступные поля в список Выбранные поля нужные имена полей à нажимаем кнопку Далее >
  • Слайд 11
  • 5 шаг – выбираем один из вариантов отображения записей с данными: подробный (без выполнения операции сведения) или итоговый с использованием сведения (нахождение суммы, среднего значения, минимума, максимума для определенных записей) à нажимаем кнопку Далее >
  • Слайд 12
  • 6 шаг – вводим имя запроса à нажимаем кнопку Готово.
  • Слайд 13
  • Теперь рассмотрим пример создания запроса при помощи Конструктора.
  • 1 шаг – на вкладке Создание выбираем Конструктор запросов.
  • 2 шаг – в диалоге Добавление таблицы выбираем таблицы, поля из которых будут использоваться в запросе à Добавить à Закрыть
  • Появляется бланк запроса, в верхней части которого отображаются макеты выбранных таблиц. А нижняя часть содержит такие строки:
  • Поле, в которой будут отображаться имена выбранных полей;
  • Имя таблицы, в которой будет отображаться имена таблиц, в состав которых входят соответствующие поля;
  • Сортировка, в которой при необходимости можно выбрать вид сортировки;
  • Вывод на экран, содержащая флажок, установленная метка которого свидетельствует о том, что данное будет отображаться в запросе;
  • Условие отбора, которая может содержать условие – выражение для выборки данных из соответствующего поля;
  • или – для записи еще одного выражения, которое является частью составного условия.
  1. Слайд 14
  2. 3 шаг – выбираем нужные поля.
  3. Чтобы выбрать поле, можно выполнить двойной щелчок по этому полю, или перетащить его из макета таблицы в строку Поле.
  4. Слайд 15
  5. 4 шаг – вводим условие отбора и нажимаем кнопку Выполнить.
  6. Слайд 16
  7. 5 шаг – закроем вкладку запроса à в окне сохранения структуры запроса выберем Да à введем имя запроса à ОК
  8. Слайд 17

Логическое выражение, представляет собой операцию отношения, при записи которого используются символы >,=105

Not физика

Источник: https://infourok.ru/sozdanie_zaprosov_v_subd_access_2007-187163.htm

Ссылка на основную публикацию
Adblock
detector