| | 1 | ===== Сумарни приходи и расходи по месеци |
| | 2 | Сумарните приходи и расходи (состојба) во целиот систем, поделени по месеци, со цел да се видат проблематичните месеци, се пресметува вкупниот приход и расход за секој месец, а разликата меѓу нив ќе ја даде состојбата |
| | 3 | {{{#!sql |
| | 4 | CREATE OR REPLACE FUNCTION get_monthly_system_balance() |
| | 5 | RETURNS TABLE ( |
| | 6 | month TEXT, |
| | 7 | total_income NUMERIC, |
| | 8 | total_expense NUMERIC, |
| | 9 | net_balance NUMERIC |
| | 10 | ) |
| | 11 | LANGUAGE plpgsql |
| | 12 | AS $$ |
| | 13 | BEGIN |
| | 14 | RETURN QUERY |
| | 15 | SELECT |
| | 16 | TO_CHAR(t.date, 'YYYY-MM'), |
| | 17 | SUM(tb.earned_amount), |
| | 18 | SUM(tb.spent_amount), |
| | 19 | SUM(tb.earned_amount) - SUM(tb.spent_amount) |
| | 20 | FROM transaction t |
| | 21 | JOIN transaction_breakdown tb ON t.transaction_id = tb.transaction_id |
| | 22 | GROUP BY TO_CHAR(t.date, 'YYYY-MM') |
| | 23 | ORDER BY month; |
| | 24 | END; |
| | 25 | $$; |
| | 26 | }}} |
| | 27 | Проблематичен месец е месец каде што {{{net_balance}}} е негативен. Резултатите можат да се прикажат во графикон (на пример, бар график или линиски график) за подобра анализа. Може да се додаде процентуална промена меѓу месеците за да се откријат трендовите во приходите и трошоците |