40 lines
1.7 KiB
SQL
40 lines
1.7 KiB
SQL
-- name: CreateTransaction :one
|
|
INSERT INTO transactions
|
|
(date, memo, amount, account_id, payee_id, category_id)
|
|
VALUES ($1, $2, $3, $4, $5, $6)
|
|
RETURNING *;
|
|
|
|
-- name: GetTransactionsForBudget :many
|
|
SELECT transactions.id, transactions.date, transactions.memo, transactions.amount,
|
|
accounts.name as account, COALESCE(payees.name, '') as payee, COALESCE(category_groups.name, '') as category_group, COALESCE(categories.name, '') as category
|
|
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
|
|
WHERE accounts.budget_id = $1
|
|
ORDER BY transactions.date DESC
|
|
LIMIT 200;
|
|
|
|
-- name: GetTransactionsForAccount :many
|
|
SELECT transactions.id, transactions.date, transactions.memo, transactions.amount,
|
|
accounts.name as account, COALESCE(payees.name, '') as payee, COALESCE(category_groups.name, '') as category_group, COALESCE(categories.name, '') as category
|
|
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
|
|
WHERE transactions.account_id = $1
|
|
ORDER BY transactions.date DESC
|
|
LIMIT 200;
|
|
|
|
-- name: DeleteAllTransactions :execrows
|
|
DELETE FROM transactions
|
|
USING accounts
|
|
WHERE accounts.budget_id = @budget_id
|
|
AND accounts.id = transactions.account_id;
|
|
|
|
-- name: GetTransactionsByMonthAndCategory :many
|
|
SELECT *
|
|
FROM transactions_by_month
|
|
WHERE transactions_by_month.budget_id = @budget_id; |