wiki:AdvancedReport12

Дневен буџет до крајот на месецот за корисник

Дневен буџет базиран на вкупниот баланс на сите сметки на корисникот

CREATE OR REPLACE FUNCTION get_daily_budget_user(
    p_user_id INT
)
RETURNS TABLE (
    daily_budget NUMERIC
)
LANGUAGE plpgsql
AS $$
BEGIN
    RETURN QUERY
    SELECT 
        COALESCE(SUM(ta.balance), 0) / 
        (DATE_PART('day', DATE_TRUNC('month', CURRENT_DATE + INTERVAL '1 MONTH') - INTERVAL '1 DAY') 
         - DATE_PART('day', CURRENT_DATE) + 1) AS daily_budget
    FROM transaction_account ta
    WHERE ta.user_id = p_user_id;
END;
$$;

Релациона алгебра

  • TA(transaction_account_id, user_id, balance)

Филтрирање по корисник:

  • F ← σuser_id = p_user_id(TA)

Агрегација на вкупен баланс:

  • S ← γ; SUM(balance) → total_balance(F)

Пресметка на дневен буџет до крајот на месецот:

  • R_final ← γ; total_balance / (DATE_PART('day', DATE_TRUNC('month', CURRENT_DATE + INTERVAL '1 MONTH') - INTERVAL '1 DAY')- DATE_PART('day', CURRENT_DATE) + 1) → daily_budget(S)
Last modified 5 days ago Last modified on 12/29/25 19:48:52
Note: See TracWiki for help on using the wiki.