努力正确连接多个表以接收正确的数据



情况:

我有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;

最新更新