wiki:AdvancedReport10

Version 2 (modified by 211101, 4 days ago) ( diff )

--

Вкупно потрошено во тековниот месец за цел систем

Вкупна сума на трошоци во тековниот месец

CREATE OR REPLACE FUNCTION get_total_spent_current_month()
RETURNS TABLE (
    total_spent NUMERIC
)
LANGUAGE plpgsql
AS $$
BEGIN
    RETURN QUERY
    SELECT 
        COALESCE(SUM(tb.spent_amount), 0) AS total_spent
    FROM transaction_breakdown tb
    JOIN transaction t
        ON tb.transaction_id = t.transaction_id
    WHERE EXTRACT(MONTH FROM t.date) = EXTRACT(MONTH FROM CURRENT_DATE)
      AND EXTRACT(YEAR FROM t.date) = EXTRACT(YEAR FROM CURRENT_DATE);
END;
$$;

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

  • TB(transaction_id, spent_amount)
  • T(transaction_id, date)

JOIN на табелите:

  • J1 ← TB ⨝TB.transaction_id = T.transaction_id T

Филтрирање на трансакции од тековниот месец и година:

  • F ← σEXTRACT(MONTH FROM date) = EXTRACT(MONTH FROM CURRENT_DATE) ∧ EXTRACT(YEAR FROM date) = EXTRACT(YEAR FROM CURRENT_DATE)(J1)

Агрегација на вкупно потрошено:

  • R_final ← γ; SUM(spent_amount) → total_spent(F)
Note: See TracWiki for help on using the wiki.