u
This commit is contained in:
1 parent
c62c9d080b
commit
6a8c31e20c
29 files changed
+1454
-357
No files matched your search
@@ -52,4 +52,59 @@ RETURNING *;
|
||||
DELETE FROM money_record WHERE id = $1;
|
||||
|
||||
-- name: DeleteMoneyRecordByCategoryId :exec
|
||||
DELETE FROM money_record WHERE user_id = $1 AND category_id = $2;
|
||||
DELETE FROM money_record WHERE user_id = $1 AND category_id = $2;
|
||||
|
||||
-- 折线图:按天、月、年汇总金额
|
||||
-- name: ListMoneyRecordsByLineAnalysis :many
|
||||
SELECT
|
||||
CASE
|
||||
WHEN $1 = 0 THEN to_char(mr.record_time, 'DD') -- 日分析,转换为文本
|
||||
WHEN $1 = 1 THEN to_char(mr.record_time, 'MM') -- 月分析,转换为文本
|
||||
WHEN $1 = 2 THEN to_char(mr.record_time, 'YYYY') -- 年分析,转换为文本
|
||||
END AS period,
|
||||
SUM(mr.amount)::DECIMAL AS total_amount
|
||||
FROM
|
||||
money_record mr
|
||||
LEFT JOIN
|
||||
money_user_category muc ON mr.category_id = muc.id -- 连接 money_user_category 获取 type
|
||||
LEFT JOIN
|
||||
space_user su ON su.user_id = $2 -- 连接 space_user 表,查找该用户在空间中的信息
|
||||
LEFT JOIN
|
||||
space s ON s.id = su.space_id -- 连接 space 表,获取空间信息
|
||||
WHERE
|
||||
(
|
||||
(su.user_id IS NOT NULL) -- 用户在空间,查询该空间内所有人的数据
|
||||
OR (mr.user_id = $1) -- 用户不在空间,查询该用户个人的账本数据
|
||||
)
|
||||
AND mr.record_time BETWEEN $3 AND $4 -- 时间范围
|
||||
AND muc.type = $5 -- 收入或支出类型
|
||||
GROUP BY
|
||||
period
|
||||
ORDER BY
|
||||
period;
|
||||
|
||||
|
||||
-- 饼图:按类别汇总金额
|
||||
-- name: ListMoneyRecordsByPieAnalysis :many
|
||||
SELECT
|
||||
muc.name,
|
||||
SUM(mr.amount)::DECIMAL AS total_amount
|
||||
FROM
|
||||
money_record mr
|
||||
LEFT JOIN
|
||||
money_user_category muc ON mr.category_id = muc.id
|
||||
LEFT JOIN
|
||||
space_user su ON su.user_id = $1 -- 连接 space_user 表,查找该用户在空间中的信息
|
||||
LEFT JOIN
|
||||
space s ON s.id = su.space_id -- 连接 space 表,获取空间信息
|
||||
WHERE
|
||||
(
|
||||
(su.user_id IS NOT NULL) -- 用户在空间,查询该空间内所有人的数据
|
||||
OR (mr.user_id = $1) -- 用户不在空间,查询该用户个人的账本数据
|
||||
)
|
||||
AND mr.record_time BETWEEN $2 AND $3 -- 时间范围
|
||||
AND muc.type = $4 -- 收入或支出类型
|
||||
GROUP BY
|
||||
muc.name
|
||||
ORDER BY
|
||||
total_amount DESC;
|
||||
Reference in new issue
Block a user