2011-07-22 48 views
0

我有一個工人及其分配的工作項目的數據庫。我想使用MySQL創建一個報告,該報告將顯示每個工作人員在特定作業和特定日期範圍內有多少工作項的計數。由此產生的數據會是這個樣子:MySQL獲得每個工人的特定日期和工作的行數

 
      Today   Tomorrow  Next Year 
Worker | Job1 Job2 Job3 | Job1 Job2 Job3 | Job1 Job2 Job3 

Bob | 4 0 1 | 1 2 0 | 5 10 3 

我有一個表具有以下相關領域:工人,日期,jobtype,工作項

每個工人指具有相同名稱的多個條目,所以鮑勃會必須分配給他多工作項,像這樣:

Bob | 07/27/2011 | sandblasting | workitem001 
Bob | 08/30/2011 | mowing | workitem001 
Bob | 08/30/2011 | driving | workitem002 

工作項可以分配給多個jobtypes。

我寫了一些令人困惑的循環與多個查詢,但理想情況下,我想編寫一個單一的,複雜的查詢來完成此操作。這甚至有可能嗎?

+0

這很可能,但對於更多答案,我們需要知道表格佈局或模式。 – Marvo

+0

你的問題並不完全清楚。你想每個工人計數嗎?你的表格中的關係並不清楚。請指定表格定義。 – pocketfullofcheese

+0

我增加了一些信息。它的可能性是 – Lou

回答

0

概述每一天:

select worker, date, job, count(*) as count 
from workitems 
group by worker, date, job 

概覽月/年:

select worker, month(date) as month, job, count(*) as count 
from workitems 
group by worker, month, job 

就是這樣。表格格式與mysql中的不同之處在於,您不能將值作爲列(在您的示例中爲job1,job2,job3),因爲它可以用於例如。 MS Access'交叉查詢。但是,您可以使用上述查詢從mysql中導出數據,然後使用MS Excel應急表來產生你想要的輸出。

+0

謝謝,這有助於很多。現在我更接近了。我在VB.NET應用程序中編寫這個,但我可能能夠導出到Excel或集成Excel。 – Lou