30 lines
996 B
SQL
30 lines
996 B
SQL
-- name: CreateCategoryGroup :one
|
|
INSERT INTO category_groups
|
|
(name, budget_id)
|
|
VALUES ($1, $2)
|
|
RETURNING *;
|
|
|
|
-- name: GetCategoryGroups :many
|
|
SELECT category_groups.* FROM category_groups
|
|
WHERE category_groups.budget_id = $1;
|
|
|
|
-- name: CreateCategory :one
|
|
INSERT INTO categories
|
|
(name, category_group_id)
|
|
VALUES ($1, $2)
|
|
RETURNING *;
|
|
|
|
-- name: GetCategories :many
|
|
SELECT categories.*, category_groups.name as group FROM categories
|
|
INNER JOIN category_groups ON categories.category_group_id = category_groups.id
|
|
WHERE category_groups.budget_id = $1
|
|
ORDER BY category_groups.name, categories.name;
|
|
|
|
-- name: SearchCategories :many
|
|
SELECT CONCAT(category_groups.name, ' : ', categories.name) as name, categories.id, 'category' as type
|
|
FROM categories
|
|
INNER JOIN category_groups ON categories.category_group_id = category_groups.id
|
|
WHERE category_groups.budget_id = @budget_id
|
|
AND categories.name LIKE @search
|
|
ORDER BY category_groups.name, categories.name;
|
|
--ORDER BY levenshtein(payees.name, $2); |