Changes between Version 1 and Version 2 of AdvancedReport1


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

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReport1

    v1 v2  
    1 ===== Листа на трансакции кои го надминале балансот на една сметка подредени хронолошки
     1==== Листа на трансакции кои го надминале балансот на една сметка подредени хронолошки
    22{{{#!sql
    33CREATE OR REPLACE FUNCTION get_transactions_exceeding_account_balance(
     
    4545
    4646}}}
     47
     48==== Релациона алгебра
     49- U(user_id, user_name)
     50- TA(transaction_account_id, user_id, account_name)
     51- TB(transaction_id, transaction_account_id, spent_amount, earned_amount)
     52- T(transaction_id, transaction_name, date)
     53
     54JOIN на сите табели:
     55- J1 := TA ⨝_{TA.user_id = U.user_id} U
     56- J2 := J1 ⨝_{TA.transaction_account_id = TB.transaction_account_id} TB
     57- J3 := J2 ⨝_{TB.transaction_id = T.transaction_id} T
     58
     59Филтер според име на акаунт:
     60- F1 := σ_{account_name = p_account_name}(J3)
     61
     62Пресметка на кумулативен баланс:
     63- CB := γ_{user_id, user_name, account_name, transaction_id, transaction_name, transaction_amount, transaction_date;
     64        Σ(transaction_amount) OVER (PARTITION BY transaction_account_id ORDER BY transaction_date) → calculated_balance}(F1)
     65
     66каде `transaction_amount = spent_amount` и кумулативната сума е `Σ(earned_amount - spent_amount)`
     67
     68Филтрирање на трансакциите кои го надминуваат балансот:
     69- R := σ_{transaction_amount > calculated_balance ∧ transaction_amount > 0}(CB)
     70
     71Подредување хронолошки(почнувајќи од најновата трансакција до најстарата):
     72- R_final := τ_{transaction_date DESC}(R)