逻辑使用COUNT()返回匹配值的数量

时间:2011-06-19 20:14:45

标签: sql

我正在尝试用SQL做一些事情,教给我自己,我不确定接下来要做什么。

我正在尝试将查询写入我的数据库(仅使用“员工信息”数据库),该数据库返回他们的姓名,他们已经完成的工作,但最重要的是,我希望每个工作都有一个“完成代码” “这讲述了作业是如何完成的,以及一个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语句中的COUNT只返回完成代码的总数,而不是员工工作类型的每个代码的完成代码。

很抱歉,如果不是很清楚,但有人知道吗?

2 个答案:

答案 0 :(得分:3)

按照声明分组, Group By crew.EMPLOYEE_NAME,o.WORK_TYPE,oc.COMPLETION_CODE

答案 1 :(得分:2)

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

然后用省略号替换你的条件。我很难写它,因为我不知道你的桌子结构。