25 lines
1.3 KiB
SQL
25 lines
1.3 KiB
SQL
-- +goose Up
|
|
CREATE VIEW display_transactions AS
|
|
SELECT transactions.id, transactions.date, transactions.memo,
|
|
transactions.amount, transactions.group_id, transactions.status,
|
|
accounts.name as account, transactions.payee_id, transactions.category_id,
|
|
COALESCE(payees.name, '') as payee,
|
|
COALESCE(category_groups.name, '') as category_group,
|
|
COALESCE(categories.name, '') as category,
|
|
COALESCE((
|
|
SELECT CONCAT(otherAccounts.name)
|
|
FROM transactions otherTransactions
|
|
LEFT JOIN accounts otherAccounts ON otherAccounts.id = otherTransactions.account_id
|
|
WHERE otherTransactions.group_id = transactions.group_id
|
|
AND otherTransactions.id != transactions.id
|
|
), '')::text as transfer_account,
|
|
accounts.budget_id, transactions.account_id
|
|
FROM transactions
|
|
INNER JOIN accounts ON accounts.id = transactions.account_id
|
|
LEFT JOIN payees ON payees.id = transactions.payee_id
|
|
LEFT JOIN categories ON categories.id = transactions.category_id
|
|
LEFT JOIN category_groups ON category_groups.id = categories.category_group_id
|
|
ORDER BY transactions.date DESC;
|
|
|
|
-- +goose Down
|
|
DROP VIEW display_transactions; |