0

状況:

私は MySQL 5 を持っています。会社のレポートといくつかの利益の詳細を作成しようとしています。

  • それぞれの会社には、私たちが彼らのために行う仕事があります。
  • 各ジョブには、そのジョブに関連する作業があります。
  • 各作業にはタスク タイプがあります

取得したいもの:

  • 全ジョブの企業ごとの総利益を知りたい
  • すべてのジョブからの各企業の合計コスト
  • 各企業のすべての仕事に費やされた時間の合計 - 仕事の種類別に分類

会社の表:

  • ID
  • 名前

ジョブ テーブル:

  • ID
  • company_id
  • バジェット
  • コスト

仕事台:

  • ID
  • ジョブ ID
  • type_id
  • 始まる時間
  • 終了時間

タイプ表:

  • ID
  • 名前
  • 時給

関係:

会社 ---< 求人 ---< 仕事 >--- 種類

ありがとう!

4

1 に答える 1

2

最初の 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 に答える