2011-06-19 41 views
0

我正在嘗試使用SQL進行一些操作,將它教給自己,並且我不確定接下來要做什麼。使用COUNT()返回匹配值的數量的邏輯

我試圖寫一個查詢到我的數據庫(只使用「員工信息」數據庫),返回他們的名字,他們的工作,但最重要的是我希望每個工作有一個「完成代碼「,它告訴我們工作是如何完成的,以及一個int,表示他們已經完成了那個特定完成代碼的工作。

現在,我可以返回所有信息,按人員,工作,然後代碼排序,但我不知道如何獲得每個單獨完成代碼(每位員工)的計數。下面是我有:

SELECT crew.EMPLOYEE_NAME, o.WORK_TYPE, oc.COMPLETION_CODE, COUNT(oc.COMPLETION_CODE) 
FROM CREW_WORK_SCHEDULE crew, ORDERS o, ORDER_COMPLETION oc 
WHERE crew.CREW_ID = o.ASSIGNED_TO_USER_ID 
AND oc.ORDER_ID = o.ORDER_ID 
ORDER BY (crew.EMPLOYEE_NAME, o.WORK_TYPE, oc.COMPLETION_CODE) 

但在SELECT語句計數將只返回的完成代碼總數,而不是一個對員工的工作類型的每個代碼。

對不起,如果它不是很清楚,但有誰知道?

回答

3

看進組的聲明, 集團通過crew.EMPLOYEE_NAME,o.WORK_TYPE,oc.COMPLETION_CODE

2
SELECT crew.EMPLOYEE_NAME, o.WORK_TYPE, oc.COMPLETION_CODE, (SELECT COUNT(*) FROM ...) 

,然後替換用省略號您的條件。由於我不知道你的餐桌結構,所以我很難寫。

+0

哦,這是有道理的,我會考慮使用它。謝謝! – zomgcopters

+0

沒問題!這就是所謂的'子查詢'btw –

+0

不知道你是否有早先的評論要求後續q,但我解決了我的問題,並得到了這個工作。謝謝! – zomgcopters