Changes between Version 5 and Version 6 of AdvancedReports


Ignore:
Timestamp:
12/23/25 19:30:50 (10 days ago)
Author:
211101
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v5 v6  
    8787===== Листа на трансакции кои го надминале балансот на сите сметки вкупно подредени хронолошки
    8888{{{#!sql
    89 WITH CumulativeTotalBalances AS (
    90     SELECT
    91         t.transaction_id,
    92         t.transaction_name,
    93         t.date AS transaction_date,
    94         u.user_id,
    95         u.user_name,
    96         tb.spent_amount AS transaction_amount,
    97         SUM(tb.earned_amount - tb.spent_amount) OVER (
    98             PARTITION BY u.user_id
    99             ORDER BY t.date
    100         ) AS calculated_total_balance
    101     FROM
    102         transaction_account ta
    103     JOIN
    104         user u ON ta.user_id = u.user_id
    105     JOIN
    106         transaction_breakdown tb ON ta.transaction_account_id = tb.transaction_account_id
    107     JOIN
    108         transaction t ON tb.transaction_id = t.transaction_id
     89CREATE OR REPLACE FUNCTION get_transactions_exceeding_user_total_balance()
     90RETURNS TABLE (
     91    user_id INT,
     92    user_name TEXT,
     93    transaction_id INT,
     94    transaction_name TEXT,
     95    transaction_amount NUMERIC,
     96    transaction_date TIMESTAMP,
     97    calculated_total_balance NUMERIC
    10998)
    110 SELECT
    111     user_id,
    112     user_name,
    113     transaction_id,
    114     transaction_name,
    115     transaction_amount,
    116     transaction_date,
    117     calculated_total_balance
    118 FROM
    119     CumulativeTotalBalances
    120 WHERE
    121     transaction_amount > calculated_total_balance -- Трансакцијата го надминува пресметаниот вкупен баланс од сите сметки
    122     AND transaction_amount > 0
    123 ORDER BY
    124     user_id, transaction_date DESC;
     99LANGUAGE plpgsql
     100AS $$
     101BEGIN
     102    RETURN QUERY
     103    WITH cumulative_totals AS (
     104        SELECT
     105            u.user_id,
     106            u.user_name,
     107            t.transaction_id,
     108            t.transaction_name,
     109            tb.spent_amount AS transaction_amount,
     110            t.date AS transaction_date,
     111            SUM(tb.earned_amount - tb.spent_amount)
     112                OVER (PARTITION BY u.user_id ORDER BY t.date)
     113                AS calculated_total_balance
     114        FROM transaction_account ta
     115        JOIN "user" u ON ta.user_id = u.user_id
     116        JOIN transaction_breakdown tb ON ta.transaction_account_id = tb.transaction_account_id
     117        JOIN transaction t ON tb.transaction_id = t.transaction_id
     118    )
     119    SELECT *
     120    FROM cumulative_totals
     121    WHERE transaction_amount > calculated_total_balance
     122      AND transaction_amount > 0
     123    ORDER BY user_id, transaction_date DESC;
     124END;
     125$$;
    125126}}}
    126127