情况:
我有MySQL 5。我正在努力制作一份公司报告和一些利润细节。
- 每家公司都有我们为他们做的工作
- 每项工作都涉及到一些工作
- 每项工作都有一种任务类型
我想要检索的内容:
- 我想知道每家公司所有工作的总利润
- 每个公司所有工作的总成本
- 每个公司在所有工作上花费的总时间-按工作类型划分
公司表:
- id
- 名称
作业表:
- id
- company_id
- 预算
- 成本
工作表:
- id
- job_id
- type_id
- 开始时间
- 结束时间
类型表:
- id
- 名称
- 小时(_R)
关系:
公司---<工作---<工作>---类型
谢谢!
使用此查询可以找到前两个:
select
c.name as company_name,
sum(hour(end_time) - hour(start_time)) * hourly_rate - sum(costs) as total_profit,
sum(costs) as total_costs
from companies c
join jobs j on j.company_id = c.id
join work w on w.job_id = j.id
join types t on t.id = w.type_id
group by 1;
最后一个可以通过这个查询找到:
select
c.name as company_name,
t.name as work_type,
sum(hour(end_time) - hour(start_time)) as total_hours
from companies c
join jobs j on j.company_id = c.id
join work w on w.job_id = j.id
join types t on t.id = w.type_id
group by 1, 2;