Долг на кредитна картичка од минатиот месец за цел систем
Вкупна сума потрошена од сметките обележани како „кредитна картичка“ за минатиот месец
CREATE OR REPLACE FUNCTION get_credit_card_debt_last_month()
RETURNS TABLE (
credit_card_debt NUMERIC
)
LANGUAGE plpgsql
AS $$
BEGIN
RETURN QUERY
SELECT
COALESCE(SUM(tb.spent_amount), 0) AS credit_card_debt
FROM transaction_breakdown tb
JOIN transaction_account ta
ON tb.transaction_account_id = ta.transaction_account_id
JOIN transaction t
ON tb.transaction_id = t.transaction_id
WHERE (ta.account_name ILIKE '%кредитна%' OR ta.account_name ILIKE '%credit%')
AND EXTRACT(MONTH FROM t.date) = EXTRACT(MONTH FROM CURRENT_DATE - INTERVAL '1 MONTH')
AND EXTRACT(YEAR FROM t.date) = EXTRACT(YEAR FROM CURRENT_DATE - INTERVAL '1 MONTH');
END;
Релациона алгебра
- TA(transaction_account_id, account_name)
- TB(transaction_id, transaction_account_id, spent_amount)
- T(transaction_id, date)
JOIN на сите табели:
- J1 ← TA ⨝TA.transaction_account_id = TB.transaction_account_id TB
- J2 ← J1 ⨝TB.transaction_id = T.transaction_id T
Филтрирање на кредитни картички и минат месец:
- F ← σ(account_name ILIKE '%кредитна%' OR account_name ILIKE '%credit%') ∧ EXTRACT(MONTH FROM date) = EXTRACT(MONTH FROM CURRENT_DATE - INTERVAL '1 MONTH') ∧ EXTRACT(YEAR FROM date) = EXTRACT(YEAR FROM CURRENT_DATE - INTERVAL '1 MONTH')(J2)
Агрегација на вкупен долг:
- R_final ← γ; SUM(spent_amount) → credit_card_debt(F)
Last modified
5 days ago
Last modified on 12/29/25 19:50:46
Note:
See TracWiki
for help on using the wiki.
