Changes between Version 1 and Version 2 of AdvancedReport10


Ignore:
Timestamp:
12/29/25 19:41:15 (5 days ago)
Author:
211101
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReport10

    v1 v2  
    1 ===== Вкупно потрошено во тековниот месец за цел систем
     1==== Вкупно потрошено во тековниот месец за цел систем
    22Вкупна сума на трошоци во тековниот месец
    33{{{#!sql
    4 SELECT
    5     SUM(tb.spent_amount) AS total_spent
    6 FROM
    7     transaction_breakdown tb
    8 JOIN transaction t ON tb.transaction_id = t.transaction_id
    9 WHERE
    10     EXTRACT(MONTH FROM t.date) = EXTRACT(MONTH FROM CURRENT_DATE)
    11     AND EXTRACT(YEAR FROM t.date) = EXTRACT(YEAR FROM CURRENT_DATE);
     4CREATE OR REPLACE FUNCTION get_total_spent_current_month()
     5RETURNS TABLE (
     6    total_spent NUMERIC
     7)
     8LANGUAGE plpgsql
     9AS $$
     10BEGIN
     11    RETURN QUERY
     12    SELECT
     13        COALESCE(SUM(tb.spent_amount), 0) AS total_spent
     14    FROM transaction_breakdown tb
     15    JOIN transaction t
     16        ON tb.transaction_id = t.transaction_id
     17    WHERE EXTRACT(MONTH FROM t.date) = EXTRACT(MONTH FROM CURRENT_DATE)
     18      AND EXTRACT(YEAR FROM t.date) = EXTRACT(YEAR FROM CURRENT_DATE);
     19END;
     20$$;
    1221}}}
     22
     23==== Релациона алгебра
     24- TB(transaction_id, spent_amount)
     25- T(transaction_id, date)
     26
     27JOIN на табелите:
     28- J1 ← TB ⨝,,TB.transaction_id = T.transaction_id,, T
     29
     30Филтрирање на трансакции од тековниот месец и година:
     31- F ← σ,,EXTRACT(MONTH FROM date) = EXTRACT(MONTH FROM CURRENT_DATE) ∧ EXTRACT(YEAR FROM date) = EXTRACT(YEAR FROM CURRENT_DATE),,(J1)
     32
     33Агрегација на вкупно потрошено:
     34- R_final ← γ,,; SUM(spent_amount) → total_spent,,(F)