Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64

Запрос на вывод списочного состава за выбранный период, с учетом действия договора

19.02.2016, 20:50. Показов 1961. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Хотелось бы реализовать Запрос на вывод списочного состава воспитанников за выбранные через параметр месяц, год и название услуги. И как-то это должно регулироваться периодом действия договора.
Буду очень благодарна за помощь)
Вложения
Тип файла: rar бд31.rar (25.0 Кб, 6 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2016, 20:50
Ответы с готовыми решениями:

Запрос на вывод информации за заданный период
Здравствуйте Я создала запрос, который выводит данные за определенный, заданный пользователем период. Но дело в том, что...

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

Запрос на вывод количества свободных номеров за конкретный период в бд Гостиница
Т.е. номера, которые свободны от бронирования и не заняты клиентами на дату которая указана в запросе. Схема бд представлена.

18
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 20:58
Цитата Сообщение от Лиловая дымка Посмотреть сообщение
за выбранные через параметр месяц, год и название услуги. И как-то это должно регулироваться периодом действия договора.
А от куда берутся месяц и год. Из начало договора, из окончания договора, или если находится в промежутке договора???
1
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 21:03
Лиловая дымка,
если правильно понял, то сделал что дата входит в промежуток действия договора
SQL
1
2
3
4
SELECT Список_услуг.Название_услуги, Воспитанник.Фамилия_воспитанника, Воспитанник.Имя_воспитанника, Воспитанник.Отчество_воспитанника, Договор.Дата_начала_действия, Договор.Дата_окончания_действия
FROM (Воспитанник INNER JOIN Договор ON Воспитанник.Код_воспитанника = Договор.Код_воспитанника) INNER JOIN Список_услуг ON Договор.Код_услуги = Список_услуг.Код_услуги
GROUP BY Список_услуг.Название_услуги, Воспитанник.Фамилия_воспитанника, Воспитанник.Имя_воспитанника, Воспитанник.Отчество_воспитанника, Договор.Дата_начала_действия, Договор.Дата_окончания_действия
HAVING (((Список_услуг.Название_услуги) LIKE [Введите часть названия услуги] & "*") AND ((Договор.Дата_начала_действия)<=#1/1/2016#) AND ((Договор.Дата_окончания_действия)>=#1/1/2016#));
Смотрите вложение
Вложения
Тип файла: rar бд31-1.rar (27.6 Кб, 1 просмотров)
1
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64
19.02.2016, 21:09  [ТС]
Не совсем...Например: мне надо список по Изо за 11.2015 (это я ввожу параметрами) , если эта дата входит в период действия договора к примеру 1.11.2015 - 31.12.2015, то он выводится на экран.
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 21:19
Лиловая дымка, попробуйте так:
SQL
1
2
3
4
SELECT Список_услуг.Название_услуги, Воспитанник.Фамилия_воспитанника, Воспитанник.Имя_воспитанника, Воспитанник.Отчество_воспитанника, Договор.Дата_начала_действия, Договор.Дата_окончания_действия, Format([Дата_начала_действия],"mm/yyyy") AS 1, Format([Дата_окончания_действия],"mm/yyyy") AS 2
FROM (Воспитанник INNER JOIN Договор ON Воспитанник.Код_воспитанника = Договор.Код_воспитанника) INNER JOIN Список_услуг ON Договор.Код_услуги = Список_услуг.Код_услуги
GROUP BY Список_услуг.Название_услуги, Воспитанник.Фамилия_воспитанника, Воспитанник.Имя_воспитанника, Воспитанник.Отчество_воспитанника, Договор.Дата_начала_действия, Договор.Дата_окончания_действия, Format([Дата_начала_действия],"mm/yyyy"), Format([Дата_окончания_действия],"mm/yyyy")
HAVING (((Список_услуг.Название_услуги) LIKE [Введите часть названия услуги] & "*") AND ((Format([Дата_начала_действия],"mm/yyyy"))=[введите период])) OR (((Список_услуг.Название_услуги) LIKE [Введите часть названия услуги] & "*") AND ((Format([Дата_окончания_действия],"mm/yyyy"))=[введите период]));
Пример во вложении
Вложения
Тип файла: rar бд31-2.rar (26.6 Кб, 0 просмотров)
1
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64
19.02.2016, 21:28  [ТС]
если ввожу 12.2015 не работает, хотя дата входит в период действия договора...
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 21:38
Лучший ответ Сообщение было отмечено Лиловая дымка как решение

Решение

Лиловая дымка, тогда могу предложить так
SQL
1
2
3
4
SELECT Список_услуг.Название_услуги, Воспитанник.Фамилия_воспитанника, Воспитанник.Имя_воспитанника, Воспитанник.Отчество_воспитанника, Договор.Дата_начала_действия, Договор.Дата_окончания_действия, Format([Дата_начала_действия],"yymm") AS 1, Format([Дата_окончания_действия],"yymm") AS 2
FROM (Воспитанник INNER JOIN Договор ON Воспитанник.Код_воспитанника = Договор.Код_воспитанника) INNER JOIN Список_услуг ON Договор.Код_услуги = Список_услуг.Код_услуги
GROUP BY Список_услуг.Название_услуги, Воспитанник.Фамилия_воспитанника, Воспитанник.Имя_воспитанника, Воспитанник.Отчество_воспитанника, Договор.Дата_начала_действия, Договор.Дата_окончания_действия, Format([Дата_начала_действия],"yymm"), Format([Дата_окончания_действия],"yymm")
HAVING (((Список_услуг.Название_услуги) LIKE [Введите часть названия услуги] & "*") AND ((Format([Дата_начала_действия],"yymm"))<=[введите период]) AND ((Format([Дата_окончания_действия],"yymm"))>=[введите период]));
Пример во вложении. Но предлагаю период набирать по другому. В проверенных средствах период месяц и год набирают в другой последовательности, а именно Год и Месяц. Например: Декабрь 2015 будет 1512. Тогда вы без ошибочно будете попадать в промежутки месяцев и годов. 1512 всегда меньше 1601 и так далее. Надеюсь идею уловили. Если скажете, что у Вас привыкли как вы указывали раньше, то могу сказать, что это дурная привычка. От нее надо избавляться и привыкать к правильному и без ошибочному.
Вложения
Тип файла: rar бд31-3.rar (26.3 Кб, 3 просмотров)
1
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64
19.02.2016, 21:46  [ТС]
А можно в таком формате записывать 2015.12? или это тоже не правильно?
для отчетов так наглядней...
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 21:54
Цитата Сообщение от Лиловая дымка Посмотреть сообщение
А можно в таком формате записывать 2015.12? или это тоже не правильно?
можно, но тогда 2015.12 уже не идет как число и надо делать дополнительные действия, чтобы машина могла сравнивать показанные данные. Слова и символы сравнить по величине нельзя, числа можно. У нас на предприятии все понимают, что если 1512, то это декабрь 2015 года.
1
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64
19.02.2016, 21:55  [ТС]
эх...
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 22:00
Цитата Сообщение от Лиловая дымка Посмотреть сообщение
эх...
Отчаиваться не надо. Чтобы кто-то не правильно не набрал период 2015.12 можно и нужно сделать таблицу Период. В одном поле сделайте все возможные ближайшие периоды: 11.2015, 12.2015, 01.2016, 02.2016, 03.2016. В соседнем поле ввиде значения для них 1511, 1512, 1601, 1602, 1603. Тогда выбирая поле 01.2016 надо в условии поставить поле с 1601. Попробую сделать на вашем примере. Пока попробуйте сами.
1
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
19.02.2016, 22:01
Лучший ответ Сообщение было отмечено Лиловая дымка как решение

Решение

Цитата Сообщение от Лиловая дымка Посмотреть сообщение
эх...
Ну почему же нельзя? Вячеслав Я предлагает сравнивать форматированные значения даты и это в любом случае стринг, а не число. Вместо Format([Дата_окончания_действия],"yymm") напишите в запросе
SQL
1
Format([Дата_окончания_действия],"yyyy.mm")
Кстати, поскольку в запросе нет агрегатных функций, то группировка абсолютно ни к чему, надо от нее избавляться. И условие тогда писать не в блоке HAVING, а во WHERE. Это будет правильнее и быстрее.
1
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64
19.02.2016, 22:05  [ТС]
Хорошо. Сейчас попробую)
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 22:12
Лиловая дымка, Вот сделал по красивому, чтобы не было ошибок и опечаток. Смотрите форму Form1. В полях вводите ваши данные и нажимаете на кнопку открыть запрос. Смотрите вложение.
Вложения
Тип файла: rar бд31-4.rar (32.1 Кб, 6 просмотров)
0
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64
19.02.2016, 22:18  [ТС]
Спасибо) Получилось как хотела!
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 22:21
Лиловая дымка, посмотрите все таки ради интереса как можно оформить без описачную фильтрацию. Может пригодится. Запрос на вывод списочного состава за выбранный период, с учетом действия договора
0
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64
19.02.2016, 22:24  [ТС]
А где посмотреть?
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
19.02.2016, 22:26
Лиловая дымка, нажмите на ссылку (ваша тема покрашена синим цветом. Откроется снова ваша тема, но на моем примере с вложением бд31-4.rar

Пост №14 в вашей теме.
0
1 / 1 / 0
Регистрация: 07.01.2015
Сообщений: 64
19.02.2016, 22:29  [ТС]
аа) поняла)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2016, 22:29
Помогаю со студенческими работами здесь

Добавить к дате выбранный период
&lt;form action=&quot;&quot; method=&quot;post&quot; name=&quot;AddDate&quot;&gt; Введите ник только что созданного пользователя:&lt;br&gt; &lt;input type=&quot;text&quot;...

Отчёт за период выбранный в combobox
как выбирать из 2 дататайм пикеров и по нему строить отчёт который уже есть ? Добавлено через 2 минуты procedure...

Сформировать отчет за выбранный период
Добрый день . Разработал програмку автоматизации отчетов По нажатию на кнопку &quot;Новая запись&quot; открывается форма ...

Уведомление об окончании действия договора
Есть справочник &quot;Организации&quot; справочник &quot;договора&quot; (Реквизиты &quot;Наименование&quot;, &quot;Окончание действия договора&quot;) владелец -...

SQL запрос: вывод записей за определенный период. Не выводит содержание таблицы
Ошибок нет, но записи не выводит, отображаются пустые колонки. Почему так? ADOQuery1-&gt;SQL-&gt;Add(&quot;:Date1&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru