| Version 2 (modified by , 4 days ago) ( diff ) |
|---|
Дневен буџет до крајот на месецот за корисник
Дневен буџет базиран на вкупниот баланс на сите сметки на корисникот
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)
Note:
See TracWiki
for help on using the wiki.
