58 lines
2.0 KiB
SQL
58 lines
2.0 KiB
SQL
-- name: GetTransaction :one
|
|
SELECT * FROM transactions
|
|
WHERE id = $1;
|
|
|
|
-- name: CreateTransaction :one
|
|
INSERT INTO transactions
|
|
(date, memo, amount, account_id, payee_id, category_id, group_id)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
RETURNING *;
|
|
|
|
-- name: UpdateTransaction :exec
|
|
UPDATE transactions
|
|
SET date = $1,
|
|
memo = $2,
|
|
amount = $3,
|
|
account_id = $4,
|
|
payee_id = $5,
|
|
category_id = $6
|
|
WHERE id = $7;
|
|
|
|
-- name: DeleteTransaction :exec
|
|
DELETE FROM transactions
|
|
WHERE id = $1;
|
|
|
|
-- 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; |