SQL - 查询中的多个项目,输出中的多个结果,表格上的单个记录

时间:2018-04-27 20:08:33

标签: sql sql-server

一个同伴伸出手,因为他只有他所拥有的提交者的员工ID,但需要能够显示每个部门提交的许多文件。我可以访问更多,但我不知道这样做。由于我无法访问他的桌子,他给了我员工ID列表。下面的查询没有给出所需的结果,但它尽可能接近我。 (他的员工ID列表也要长得多。)

select wf.department, count (empid) CT from workforce wf
 where wf.empid IN('1234','1234')
group by wf.department

我希望结果如下:

Department | CT
Reporting  | 2

相反,它的计数为1,因为员工ID仅在劳动力表上出现一次。有没有办法计算?即使我可以将它列在下面的员工ID旁边的部门,我也可以在Excel中放入一个表格并获得我需要的手动。

Department| Empid
Reporting | 1234
Reporting | 1234

我正在使用MSSMS。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

IN仅进行过滤。如果要将行数相乘,请使用JOIN

select wf.department, count(v.empid) as CT
from (values ('1234'), ('1234')) v(empid) join
     workforce wf
     on wf.empid= v.empid
group by wf.department;

注意:如果值是数字,则删除单引号。尝试在比较中保持类型一致。