powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / построить выражение для подсчета остатков
7 сообщений из 7, страница 1 из 1
построить выражение для подсчета остатков
    #32796988
Элиса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здравствуйте. для таблицы со столбцами дата, счет, приход, расход с помощью запроса добавляю поле с выражением Expr1: [журнал операций]![приход]-[журнал операций]![расход] и получаю разницу по каждой строке. А как построить выражение, чтобы получить остатки - разницу с учетом предыдущих строк? спасибо
...
Рейтинг: 0 / 0
построить выражение для подсчета остатков
    #32797016
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем случае - никак. такой функции нет.

Для опрделения остатока на конец выборки надо знать остаток на ее начало. Допустим, что это 0

тогда есть 2 варианта:
1-динамический пересчет остатка с начала выборки (sum([поле])
2- статически - завести поле в котором хранить текущие остатки, изменяя его по свершенни определенных событий.

Если не 0 - то чуть сложнее, но суть та же.
...
Рейтинг: 0 / 0
построить выражение для подсчета остатков
    #32797893
Элиса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за функцию и ответ

по первому варианту:
если строить отдельный запрос с одним вычисляемым полем, Expr1: Sum([журнал операций]![приход]-[журнал операций]![расход]), получаю результат - одним числом, если этот запрос на добавление, то получаем длинную таблицу с данными о приходах-расходах (т.е, журнал операций) с пустым полем "остатки" и лишь последней строчкой (точнее ячейкой) в нем светится заветное число. А нужно, чтобы в каждой строке..

попыталась включить эту функцию в поле запросов, которые выполняют добавление данных о приходе-расходе - получила сообщение:
You tried to execute a query that does not include the specified expression <дата> as part of an aggregate function
В хелпе:Possible cause:
You did not enter an aggregate function in the TRANSFORM statement.
Я правильно понимаю: 1) чтобы функция заработала её надо увязать с полем "дата" 2) что я вообще ничего не понимаю...
...
Рейтинг: 0 / 0
построить выражение для подсчета остатков
    #32797991
Фотография neal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши запрос в режиме SQL (знаете что это такое?):

SELECT T1.Дата, T1.Счет, Sum(T1.[приход]-T2.[расход]) as Остаток
FROM [Журнал операций] as T1 LEFT JOIN [Журнал операций] as T2
ON (T1.Счет = T2.Счет)
WHERE (T2.Дата <= T1.Дата)
GROUP BY T1.Дата, T1.Счет
ORDER BY T1.Дата, T1.Счет


-------------------------------------------------------
Заходи в саpай аккуpатно - могут быть сеpьезные гpабли.
...
Рейтинг: 0 / 0
построить выражение для подсчета остатков
    #32798313
Элиса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
- это я хныкнула.

продолжаем:в задаче задействованы три таблицы:
карточка доходов (датаД, счетД, группаД, суммаД),
карточка расходов (датаР, счетР, группаР, суммаР, колво, едИзм...)
и журнал операций (дата счет, приход, расход, остатки)

В журнал операций данные заносятся из таблиц-карточек с помощью двух запросов на добавление, а в ячейках поля "остатки" по идее должен записываться результат каждой операции с учетом предыдущего значения "остатка" т.е. нарастающим итогом. Уже совершенно ясно что третий запрос на вычисление не дает нужного результата ; очень хочется встроить функцию в запрос на добавление - чтобы считала остатки после каждой записи - но как это делают?... и может сам журнал операций обычно организуют по другому...
...
Рейтинг: 0 / 0
построить выражение для подсчета остатков
    #32798403
Элиса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Напиши запрос в режиме SQL (знаете что это такое?): набор команд специально для Access?
...
Рейтинг: 0 / 0
построить выражение для подсчета остатков
    #32798628
Элиса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Напиши запрос в режиме SQL (знаете что это такое?): уже чуть-чуть Structured Query Language, Simple Query Language...

SELECT T1.Дата, T1.Счет, Sum(T1.[приход]-T2.[расход]) as Остаток
FROM [Журнал операций] as T1 LEFT JOIN [Журнал операций] as T2
ON (T1.Счет = T2.Счет)
WHERE (T2.Дата <= T1.Дата)
GROUP BY T1.Дата, T1.Счет
ORDER BY T1.Дата, T1.Счет
--------------------------------------

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


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