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

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

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

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

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

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

Большое спасибо за методику подхода. А можете показать текст запроса на уровне моих полей в таблице?
...
Рейтинг: 0 / 0
15.01.2016, 17:17
    #39148386
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
Пользуясь методикой, составьте запрос самостоятельно. Причём не весь сразу, а пишите фрагменты по шагам, постепенно наращивая текст запроса. Результат работы (не конечный, а именно по шагам с пояснениями) - выкладывайте. Если в нём будут ошибки - я покажу где и объясню как и почему.
...
Рейтинг: 0 / 0
15.01.2016, 20:37
    #39148516
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
значение поля предыдущей строки аксесс, запрос SQL (без VBA)
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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / значение поля предыдущей строки аксесс, запрос SQL (без VBA) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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