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

Запрос на выборку?

05.08.2010, 11:00. Показов 1304. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Существует некая таблица 'Лицевые счета', где записываются данные(проводки) по каждому номеру лицевого счета(ключевое поле) на определенную дату.
Допустим в таблице для лицевого счета №1 существует четыре проводки за 10.12.03, за 15.01.04, за 09.02.04, и за 23.03.04.
Как мне выбрать данные из строки на дату 09.02.04, а затем узнать дату предыдущей проводки (в этом примере - 15.01.04), чтобы посчитать количество дней, которое прошло с момента предыдущей оплаты.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2010, 11:00
Ответы с готовыми решениями:

Если нужно сделать запрос на добавление, зачем предварительно делать запрос на выборку?
Есть таблица: ID_записи, поле1, поле2, поле3. Хотелось бы записать запрос на добавление записи с полем1=!.!. (остальные пустые, кроме...

Запрос на выборку
Почему не работает запрос: WHERE (((.Смена)=IIf(!! Is Null,"*",!!))); При этом конструкции: WHERE (((.Смена) Like...

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

4
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
05.08.2010, 11:20
Создаём форму с соответствующим источником записей. По открытию формы создаём копию источника данных table (например, Me.RecordSetClone, если источник данных упорядочен по дате или просто отбираем в упорядоченный по дате RecordSet те же данные) и в нём ищем:

With table
.FindFirst 'ДатаПроводки=#' & Me.ДатаПроводки & '#'
.MovePrevious
MsgBox !ДатаПроводки
End With

где Me.ДатаПроводки - имя поля формы, в котором выводятся данные поля ДатаПроводки из соответствующей таблицы.
0
0 / 0 / 0
Регистрация: 05.08.2010
Сообщений: 7
05.08.2010, 12:05  [ТС]
Дело в том, что мне надо выбрать из таблицы 'Лицевые счета', данные за определенный месяц, последнюю дату за этот месяц и предпоследнюю дату, не для какого то конкретного лицевого счета, а для двадцати с лишним тысяц лицевых счетов(в таблице лицевые счета больше 200000 проводок), а потом для каждого лицевого счета посчитать количество дней со дня последней оплаты, и получить в итоге таблицу в которой будут записи (№ лицевого счета, сумма отплаты, дата оплаты, предыдущая дата оплаты, количество дней со дня предыдущей оплаты) по каждому лицевому счету.
0
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
05.08.2010, 12:35
1. Создаём запрос ПоследнийПлатёж:
SELECT ЛицевыеСчета.СчётНомер, Max(ЛицевыеСчета.ДатаПлатежа) AS [ПоследнийПлатёж] FROM [ЛицевыеСчета] GROUP BY ЛицевыеСчета.СчётНомер;
2. Создаём запрос ПредпоследнийПлатёж:
SELECT ЛицевыеСчета.СчётНомер, Max(ЛицевыеСчета.ДатаПлатежа) AS [ПредпоследнийПлатёж] FROM [ПоследнийПлатёж] INNER JOIN [ЛицевыеСчета] ON ПоследнийПлатёж.СчётНомер = ЛицевыеСчета.СчётНомер WHERE (((ЛицевыеСчета.ДатаПлатежа)<>[ПоследнийПлатёж].[ПоследнийПлатёж])) GROUP BY ЛицевыеСчета.СчётНомер;
3. Результирующий запрос:
SELECT ПоследнийПлатёж.СчётНомер, [ПоследнийПлатёж]-[ПредпоследнийПлатёж] AS Дней FROM [ПоследнийПлатёж] INNER JOIN [ПредпоследнийПлатёж] ON ПоследнийПлатёж.СчётНомер = ПредпоследнийПлатёж.СчётНомер;
0
0 / 0 / 0
Регистрация: 05.08.2010
Сообщений: 7
05.08.2010, 14:01  [ТС]
Сначала наверно надо создать промежуточный запрос где отсечь все записи дата оплаты у которых больше параметра [Введите дату окончания периода], а уже затем на основе запроса с выбранными значениями создавать запросы ПоследнийПлатеж и Предпоследний платеж.
Можно ведь и так?

Вот что уменя получилось:

1.Создал запрос ПоследнийПлатеж:

SELECT ЛИЦЕВЫЕСЧЕТА.[Номер абонента], Max(ЛИЦЕВЫЕСЧЕТА.[Дата оплаты]) AS ПоследнийПлатеж FROM [ЛИЦЕВЫЕСЧЕТА] WHERE (((ЛИЦЕВЫЕСЧЕТА.[Дата оплаты])<[Введите дату окончания периода]))GROUP BY ЛИЦЕВЫЕСЧЕТА.[Номер абонента];
Здесь я отсекаю записи которые мне не нужны, например оставляю все записи дата оплаты у которых до 31.01.04

2.Создал запрос ПредпоследнийПлатеж:

SELECT ЛИЦЕВЫЕСЧЕТА.[Номер абонента], Max(ЛИЦЕВЫЕСЧЕТА.[Дата оплаты]) AS ПредпоследнийПлатеж FROM ПоследнийПлатеж INNER JOIN [ЛИЦЕВЫЕСЧЕТА] ON ПоследнийПлатеж.[Номер абонента] = ЛИЦЕВЫЕСЧЕТА.[Номер абонента]
WHERE (((ЛИЦЕВЫЕСЧЕТА.[Дата оплаты])<[Введите дату окончания периода]) AND ((ЛИЦЕВЫЕСЧЕТА.[Дата оплаты])<>[ПоследнийПлатеж].[ПоследнийПлатеж]))GROUP BY ЛИЦЕВЫЕСЧЕТА.[Номер абонента];

3. Создал РазультирующийЗапрос:

SELECT ПоследнийПлатеж.[Номер абонента], ПоследнийПлатеж.ПоследнийПлатеж, ПредпоследнийПлатеж.ПредпоследнийПлатеж, [ПоследнийПлатеж]-[ПредпоследнийПлатеж] AS Дней FROM ПоследнийПлатеж INNER JOIN ПредпоследнийПлатеж ON ПоследнийПлатеж.[Номер абонента] = ПредпоследнийПлатеж.[Номер абонента];

А можно все это сделать проще?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.08.2010, 14:01
Помогаю со студенческими работами здесь

Запрос на выборку
Нужна помощь в решении такой задачи: Есть таблица в которой 1 столбец - перечень областей, 2 столбец - перечень городов Нужно сделать...

Запрос на выборку
Создаю запрос на выборку по двум полям: Поле1 и Поле2 (данные для отбора вводятся пользователем). Если ввести данные для Поле1 и Поле2, то...

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

Запрос на выборку
Не могу понять как все же мне получить результат! посмотрите пожалуйста, как мне сформировать запрос? точнее отчетов должно быть 3 ...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru