Changes between Initial Version and Version 1 of AdvancedReport3


Ignore:
Timestamp:
12/28/25 23:13:36 (6 days ago)
Author:
211101
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReport3

    v1 v1  
     1===== Листа на трансакции кои го надминале балансот на сите сметки вкупно подредени хронолошки
     2{{{#!sql
     3CREATE OR REPLACE FUNCTION get_transactions_exceeding_user_total_balance()
     4RETURNS TABLE (
     5    user_id INT,
     6    user_name TEXT,
     7    transaction_id INT,
     8    transaction_name TEXT,
     9    transaction_amount NUMERIC,
     10    transaction_date TIMESTAMP,
     11    calculated_total_balance NUMERIC
     12)
     13LANGUAGE plpgsql
     14AS $$
     15BEGIN
     16    RETURN QUERY
     17    WITH cumulative_totals AS (
     18        SELECT
     19            u.user_id,
     20            u.user_name,
     21            t.transaction_id,
     22            t.transaction_name,
     23            tb.spent_amount AS transaction_amount,
     24            t.date AS transaction_date,
     25            SUM(tb.earned_amount - tb.spent_amount)
     26                OVER (PARTITION BY u.user_id ORDER BY t.date)
     27                AS calculated_total_balance
     28        FROM transaction_account ta
     29        JOIN "user" u ON ta.user_id = u.user_id
     30        JOIN transaction_breakdown tb ON ta.transaction_account_id = tb.transaction_account_id
     31        JOIN transaction t ON tb.transaction_id = t.transaction_id
     32    )
     33    SELECT *
     34    FROM cumulative_totals
     35    WHERE transaction_amount > calculated_total_balance
     36      AND transaction_amount > 0
     37    ORDER BY user_id, transaction_date DESC;
     38END;
     39$$;
     40}}}