|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
Привет! Решил разобратся с накопительным итогом в запросе (сумма счета - списано переносится на следующий счет . Критерий выборки - дата счета и порядковый номер записи). По умолчанию все работало нормально, но потребовалось добавить один дополнительный параметр в условие накопления, а именно код_договора, в рамках которого выставляется счет и чтобы сумма остатка/накопления формировалась исходя не только из даты счета и его порядкового номера , но и принимала во внимание код договора к которому относится данный счет. Ну то есть чтобы накопление шло и с учетом кода договора, к которому относится данный счет. Список полей таблицы: код_оплаты номер_счета дата_счета счет_сумма списано_сумма код_договора В запросе использовал агрегатные функции, так как необходим расчет на лету. Работает но никак не могу привинтить расчет с дополнительным параметром /условие накопления с учетом кода договора. Вот пример на SQL access с расчетом накопительного остатка без учета кода договора: Код: sql 1. 2. 3. 4.
Пытался подставить доп критерий типа Код: sql 1.
, но не выходит аленький цветочек ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 16:56 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
А,все, решил проблему, немного по другому: Код: sql 1. 2.
. Попроще, но работает. Приложил работоспособный пример для потомков во вложении. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 17:25 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
Сергей Лалов, я бы предпочла DSUM считать отдельно, чтобы можно было ее проконтролировать - слишком много на ней условий Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 19:55 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
А почему не тривиально: Код: vbnet 1.
Условий =,<>,>,< через AND,OR до 32 (избави бог меня от такого) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 22:55 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, Да, вы правы, немного код растекся смотреть неудобно. Еще один момент заметил, мой вышеуказанный пример формирует остаток на дату счета, если счет имеет новую дату ,то начисление остатка прерывается и начинается по счету с новой датой. Кто то, кому надо смотреть остатки на даты с разбивкой пример зайдет, а если надо чтобы непрерывно шел остаток вне зависимости от даты счета, то можно добавить один штрих: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Надо добавить значок меньше ...& ") And (дата_счета<=#" & Format([дата_счета],"mm\/dd\/yyyy") & "#)") AS Остаток.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 00:00 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
еще тривиальней(см.Form1): ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 00:01 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
sdku А почему не тривиально: Код: vbnet 1.
Условий =,<>,>,< через AND,OR до 32 (избави бог меня от такого) Пойдет, но мне нужно чтобы менялось значение в запросе аксесовском, сразу после ввода туда же. Конструкции с GROUP BY в теле запроса не дают менять пользователю данные ( В таком синтаксе как вы указали. Так то можно извратится с DISTINCT , но агрегатными удобней решилось) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 00:04 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
sdku еще тривиальней(см.Form1): У меня сразу и вводится в запрос аксесовский и сразу на лету пересчитывается там же. Вы немного не те примеры шлете) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 00:06 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
Сергей Лалов Пойдет, но мне нужно чтобы менялось значение в запросе аксесовском(что Вы имеете в виду?) , сразу после ввода туда же.(куда?) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 02:22 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
Сергей Лалов У меня сразу и вводится в запрос аксесовский и сразу на лету пересчитывается там же. Вы немного не те примеры шлете) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 02:46 |
|
Остаток по счету накопительным итогом в запросе с дополнительным условием
|
|||
---|---|---|---|
#18+
sdku Сергей Лалов Пойдет, но мне нужно чтобы менялось значение в запросе аксесовском(что Вы имеете в виду?) , сразу после ввода туда же.(куда?) Да уже все сделано ,еще до ваших комментов, можно расслабится) Вот образец, когда вы на подчиненной форме заполняете счета по договору чуть выше, при проставлении суммы счета и суммы списания в этой же подчиненной форме счета остаток рассчитывается автоматически. В этой же форме , там где вы меняете сумму счета и сумму списания. Основой подчиненной формы пф_счета служит аксесовский запрос с агрегатными функциями, которые позволяют не только что рассчитывать , но и править поля в этом же запросе параллельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 13:48 |
|
|
start [/forum/topic.php?fid=45&msg=39970414&tid=1610047]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 471ms |
0 / 0 |