|
|
|
построить выражение для подсчета остатков
|
|||
|---|---|---|---|
|
#18+
здравствуйте. для таблицы со столбцами дата, счет, приход, расход с помощью запроса добавляю поле с выражением Expr1: [журнал операций]![приход]-[журнал операций]![расход] и получаю разницу по каждой строке. А как построить выражение, чтобы получить остатки - разницу с учетом предыдущих строк? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 20:57:26 |
|
||
|
построить выражение для подсчета остатков
|
|||
|---|---|---|---|
|
#18+
В общем случае - никак. такой функции нет. Для опрделения остатока на конец выборки надо знать остаток на ее начало. Допустим, что это 0 тогда есть 2 варианта: 1-динамический пересчет остатка с начала выборки (sum([поле]) 2- статически - завести поле в котором хранить текущие остатки, изменяя его по свершенни определенных событий. Если не 0 - то чуть сложнее, но суть та же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 22:15:12 |
|
||
|
построить выражение для подсчета остатков
|
|||
|---|---|---|---|
|
#18+
спасибо за функцию и ответ по первому варианту: если строить отдельный запрос с одним вычисляемым полем, 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) что я вообще ничего не понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 13:37:37 |
|
||
|
построить выражение для подсчета остатков
|
|||
|---|---|---|---|
|
#18+
Напиши запрос в режиме 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абли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 14:09:00 |
|
||
|
построить выражение для подсчета остатков
|
|||
|---|---|---|---|
|
#18+
- это я хныкнула. продолжаем:в задаче задействованы три таблицы: карточка доходов (датаД, счетД, группаД, суммаД), карточка расходов (датаР, счетР, группаР, суммаР, колво, едИзм...) и журнал операций (дата счет, приход, расход, остатки) В журнал операций данные заносятся из таблиц-карточек с помощью двух запросов на добавление, а в ячейках поля "остатки" по идее должен записываться результат каждой операции с учетом предыдущего значения "остатка" т.е. нарастающим итогом. Уже совершенно ясно что третий запрос на вычисление не дает нужного результата ; очень хочется встроить функцию в запрос на добавление - чтобы считала остатки после каждой записи - но как это делают?... и может сам журнал операций обычно организуют по другому... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 15:43:50 |
|
||
|
построить выражение для подсчета остатков
|
|||
|---|---|---|---|
|
#18+
Напиши запрос в режиме SQL (знаете что это такое?): набор команд специально для Access? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 16:15:34 |
|
||
|
построить выражение для подсчета остатков
|
|||
|---|---|---|---|
|
#18+
Напиши запрос в режиме 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 на сон грядущий... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 18:06:33 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32798403&tid=1670157]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 292ms |
| total: | 446ms |

| 0 / 0 |
