powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / значение поля предыдущей строки аксесс, запрос SQL (без VBA)
7 сообщений из 7, страница 1 из 1
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
    #39147668
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, всем привет!

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

Есть к примеру таблица ДОХОДЫ, с двумя полями ПЕРИОД (текст) и ДОХОД (обычное число)

Как написать правильно запрос таким образом, чтобы дополнительное поле в запросе выводило значение поля ДОХОД предыдущей записи?

В VBA не надо . Пример где снимается значение с привязкой к к значению счетчика также не надо. Нужно именно предыдущей строки.
...
Рейтинг: 0 / 0
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
    #39147737
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов....Как написать правильно запрос таким образом, чтобы дополнительное поле в запросе выводило значение поля ДОХОД предыдущей записи?....А относительно какой?
...
Рейтинг: 0 / 0
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
    #39147756
sdku,

Относительно recordset.moveLast ;)
...
Рейтинг: 0 / 0
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
    #39147896
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лаловкак при помощи одного SQL реализовать запрос ,в котором в дополнительном расчетном поле будет выводиться значение поля предыдущей строки.
Для этого обязано существовать идентифицирующее (уникальное в пределах группы сортировки) поле, для которого определена операция сравнения. Суть запроса элементарна. Берётся две копии таблицы, выполняется отбор по этому идентифицирующему полю так, чтобы во второй копии оно было меньше, чем в первой. Группируем по полю первой копии и берём максимум по второй копии. Получаем пару идентифицирующих значений. Привязывая к ним ещё две копии таблицы, получаем полные записи.
...
Рейтинг: 0 / 0
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
    #39148373
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina Для этого обязано существовать идентифицирующее (уникальное в пределах группы сортировки) поле, для которого определена операция сравнения. Суть запроса элементарна. Берётся две копии таблицы, выполняется отбор по этому идентифицирующему полю так, чтобы во второй копии оно было меньше, чем в первой. Группируем по полю первой копии и берём максимум по второй копии. Получаем пару идентифицирующих значений. Привязывая к ним ещё две копии таблицы, получаем полные записи.

Большое спасибо за методику подхода. А можете показать текст запроса на уровне моих полей в таблице?
...
Рейтинг: 0 / 0
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
    #39148386
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользуясь методикой, составьте запрос самостоятельно. Причём не весь сразу, а пишите фрагменты по шагам, постепенно наращивая текст запроса. Результат работы (не конечный, а именно по шагам с пояснениями) - выкладывайте. Если в нём будут ошибки - я покажу где и объясню как и почему.
...
Рейтинг: 0 / 0
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
    #39148516
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПользуясь методикой, составьте запрос самостоятельно. Причём не весь сразу, а пишите фрагменты по шагам, постепенно наращивая текст запроса. Результат работы (не конечный, а именно по шагам с пояснениями) - выкладывайте. Если в нём будут ошибки - я покажу где и объясню как и почему.

В общем то получается запрос вида:

Код: sql
1.
2.
3.
SELECT доходы.счетчик, доходы.доход, доходы.период,(SELECT TOP 1 доходы2.доход FROM доходы AS доходы2 
WHERE  доходы2.период <доходы.период ORDER BY  доходы2.период DESC) AS предыдущее_значение
FROM доходы ORDER BY доходы.период



Каюсь, что нашел алгоритм в шпаргалке, на этом сайте. Но разобрался. Ключевым моментом здесь является именно сортировка основной таблицы и её копии в разных направлениях с выборкой первой записи из копии, отсортированной в обратном порядке.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / значение поля предыдущей строки аксесс, запрос SQL (без VBA)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]