0

情况:

我有 MySQL 5。我正在尝试制作公司报告和一些利润细节。

  • 每家公司都有我们为他们做的工作。
  • 每个工作都有涉及该工作的工作。
  • 每件作品都有一个任务类型

我要检索的内容:

  • 我想知道每家公司从所有工作中获得的总利润
  • 每个公司所有工作的总成本
  • 每个公司在所有工作上花费的总时间 - 按工作类型分开

公司表:

  • ID
  • 姓名

职位表:

  • ID
  • company_id
  • 预算
  • 费用

工作表:

  • ID
  • job_id
  • type_id
  • 开始时间
  • 时间结束

类型表:

  • ID
  • 姓名
  • 每小时收费

关系:

公司 ---< 工作 ---< 工作 >--- 类型

谢谢!

4

1 回答 1

2

前两个可以通过以下查询找到:

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;
于 2011-06-07T10:55:01.420 回答