|
Как написать пользовательскую агрегатную функцию?
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите, пожалуйста, есть таблица с полями client, summa, condition (условие: выдача или погашение кредита). Поле client не уникально, то есть для каждого клиента несколько операций. Необходимо для каждого клиента посчитать, какая сумма осталась к погашению, то есть если в condition выдача, то значение из поля summa должно прибавляться, если погашение, то вычитаться. Написала функцию, которая делает это CREATE OR REPLACE FUNCTION rest_debt ( summa NUMBER, condition VARCHAR2, stat1 VARCHAR2 DEFAULT 'Выдача кредита', stat2 VARCHAR2 DEFAULT 'Погашение кредита') RETURN NUMBER IS rest NUMBER := 0; BEGIN IF condition = stat1 THEN rest := rest+summa; ELSIF condition = stat2 THEN rest := rest+summa; ELSE rest := rest; END IF; RETURN rest; END rest_debt; но при использовании ее в SELECT, она работает для каждой строки отдельно, при использовании GROUP BY возникает ошибка Выражение не является выражением GROUP BY. Как сделать, чтобы она считала именно по группе? Или может есть другие варианты решения такой задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2021, 22:19 |
|
Как написать пользовательскую агрегатную функцию?
|
|||
---|---|---|---|
#18+
diagirl, А зачем тут функция? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2021, 22:45 |
|
Как написать пользовательскую агрегатную функцию?
|
|||
---|---|---|---|
#18+
diagirl Код: plsql 1. 2.
Пользовательскую агрегатную функцию писать немного сложнее, чем вы думаете. Примерно так: Using User-Defined Aggregate Functions Но в целом, не очень сложно. Хотя для ваших целей она не нужна, см. пример выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 09:26 |
|
|
start [/forum/topic.php?fid=52&fpage=15&tid=1880028]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 230ms |
total: | 362ms |
0 / 0 |