2011-06-07 40 views
0

情況:掙扎正確連接多個表得到正確的數據

我的MySQL 5,我想製作公司和一些利潤細節的報告。

  • 每個公司都有我們爲他們做的工作。
  • 每一個工作都有參與該工作的工作件。
  • 每件作品都有一個任務類型

我要找回什麼:

  • 我想知道每家公司從所有工作
  • 總費用佔利潤總額每家公司從所有工作
  • 花費在所有的工作對每家公司的總時間量 - 由工作型分離

公司表:

  • ID

工作表:

  • ID
  • COMPANY_ID
  • 預算
  • 成本

工作表:

  • ID
  • JOB_ID
  • TYPE_ID
  • START_TIME
  • END_TIME

類型表:

  • ID
  • hourly_rate

關係:

公司--- <個工作--- <工作> ---類型

謝謝!

回答

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; 
+0

謝謝,不能要求更多了! – 472084 2011-06-07 12:03:46

+0

剛剛意識到第二個工作正常,但第一個產生的total_costs值都太高了!有任何想法嗎? – 472084 2011-06-07 14:19:49