59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| -- name: CreateProject :one
 | |
| INSERT INTO projects (id, name, start_at, end_at, customer_id, total_money, description, apply_at, apply_user_id, manager_id, members, status, created_user_id)
 | |
| VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)
 | |
| RETURNING *;
 | |
| 
 | |
| -- name: UpdateProject :one
 | |
| UPDATE projects
 | |
| SET
 | |
|     name = COALESCE(sqlc.narg(name), name),
 | |
|     start_at = COALESCE(sqlc.narg(start_at), start_at),
 | |
|     end_at = COALESCE(sqlc.narg(end_at), end_at),
 | |
|     customer_id = COALESCE(sqlc.narg(customer_id), customer_id),
 | |
|     total_money = COALESCE(sqlc.narg(total_money), total_money),
 | |
|     description = COALESCE(sqlc.narg(description), description),
 | |
|     apply_at = COALESCE(sqlc.narg(apply_at), apply_at),
 | |
|     apply_user_id = COALESCE(sqlc.narg(apply_user_id), apply_user_id),
 | |
|     manager_id = COALESCE(sqlc.narg(manager_id), manager_id),
 | |
|     members = COALESCE(sqlc.narg(members), members),
 | |
|     status = COALESCE(sqlc.narg(status), status),
 | |
|     updated_user_id = COALESCE(sqlc.narg(updated_user_id), updated_user_id),
 | |
|     updated_at = NOW()
 | |
| WHERE id = $1
 | |
| RETURNING *;
 | |
| 
 | |
| -- name: GetProject :one
 | |
| SELECT * 
 | |
| FROM projects 
 | |
| WHERE id = $1
 | |
| LIMIT 1;
 | |
| 
 | |
| -- name: AllProjects :many
 | |
| SELECT * FROM projects
 | |
| WHERE status > -1
 | |
| ORDER BY id DESC;
 | |
| 
 | |
| -- name: CountProjects :one
 | |
| SELECT COUNT(1)
 | |
| FROM projects
 | |
| WHERE status = $1;
 | |
| 
 | |
| -- name: ListProjects :many
 | |
| SELECT * 
 | |
| FROM projects
 | |
| WHERE status = $1
 | |
| ORDER BY id DESC
 | |
| LIMIT $1 OFFSET $2;
 | |
| 
 | |
| -- name: StatisticsProjects :many
 | |
| select name,
 | |
|        (select sum(amount)::numeric from incomes where project_id = projects.id) income,
 | |
|        (select sum(amount)::numeric from expenses where project_id = projects.id) expense
 | |
| from projects;
 | |
| 
 | |
| -- name: StatisticsProjectItem :one
 | |
| select name,
 | |
|        (select sum(amount)::numeric from incomes where project_id = projects.id) income,
 | |
|        (select sum(amount)::numeric from expenses where project_id = projects.id) expense
 | |
| from projects
 | |
| where projects.id = $1; |