| 52 | | SELECT |
| 53 | | u.user_id, |
| 54 | | u.user_name, |
| 55 | | ta.account_name, |
| 56 | | ta.balance AS current_balance, |
| 57 | | t.transaction_id, |
| 58 | | t.transaction_name, |
| 59 | | tb.spent_amount AS transaction_amount, |
| 60 | | t.date AS transaction_date |
| 61 | | FROM |
| 62 | | transaction_account ta |
| 63 | | JOIN user u ON ta.user_id = u.user_id |
| 64 | | JOIN transaction_breakdown tb ON ta.transaction_account_id = tb.transaction_account_id |
| 65 | | JOIN transaction t ON tb.transaction_id = t.transaction_id |
| 66 | | WHERE |
| 67 | | tb.spent_amount > ta.balance -- Трансакцијата го надминува моменталниот баланс на СМЕТКАТА |
| 68 | | AND tb.spent_amount > 0 |
| 69 | | ORDER BY |
| 70 | | u.user_id, ta.account_name, t.date DESC; |
| | 52 | CREATE OR REPLACE FUNCTION get_current_account_overdrafts() |
| | 53 | RETURNS TABLE ( |
| | 54 | user_id INT, |
| | 55 | user_name TEXT, |
| | 56 | account_name TEXT, |
| | 57 | current_balance NUMERIC, |
| | 58 | transaction_id INT, |
| | 59 | transaction_name TEXT, |
| | 60 | transaction_amount NUMERIC, |
| | 61 | transaction_date TIMESTAMP |
| | 62 | ) |
| | 63 | LANGUAGE plpgsql |
| | 64 | AS $$ |
| | 65 | BEGIN |
| | 66 | RETURN QUERY |
| | 67 | SELECT |
| | 68 | u.user_id, |
| | 69 | u.user_name, |
| | 70 | ta.account_name, |
| | 71 | ta.balance, |
| | 72 | t.transaction_id, |
| | 73 | t.transaction_name, |
| | 74 | tb.spent_amount, |
| | 75 | t.date |
| | 76 | FROM transaction_account ta |
| | 77 | JOIN "user" u ON ta.user_id = u.user_id |
| | 78 | JOIN transaction_breakdown tb ON ta.transaction_account_id = tb.transaction_account_id |
| | 79 | JOIN transaction t ON tb.transaction_id = t.transaction_id |
| | 80 | WHERE tb.spent_amount > ta.balance |
| | 81 | AND tb.spent_amount > 0 |
| | 82 | ORDER BY t.date DESC; |
| | 83 | END; |
| | 84 | $$; |