【发布时间】:2018-03-14 10:14:07
【问题描述】:
我不知道这是否可能,但我想在与主查询不同的特定条件下获得计数。
如果我有两个这样的表:
Overtime
emp_num, dep_code, trans_date, overtime shift_id
13 305 2017-9-1 02:27:00.0000000 12
13 305 2017-9-2 02:21:00.0000000 14
13 305 2017-9-4 01:21:00.0000000 13
18 305 2017-9-4 06:21:00.0000000 14
18 305 2017-9-10 09:21:00.0000000 14
18 305 2017-9-18 08:21:00.0000000 13
Employee
emp_num, name
13 Joe
18 Maria
我的查询
SELECT a.emp_num ,b.NAME,COUNT(*) AS 'Num of days'
from Overtime a INNER JOIN Employee b
ON a.emp_num = b.emp_num
WHERE a.dep_code = 305 AND trans_date BETWEEN '2017-9-1' AND '2017-9-30'
and over_time >= '02:00:00.0000000'
GROUP BY a.emp_num ,b.NAME
现在我想在同一个查询中获取同一查询中每个员工shift_id =14 的班次(计数)数。(此条件仅适用于这部分数据)
示例的预期结果:
emp_num Name Num of days Num of shifts
13 Joe 2 1
18 Maria 3 2
【问题讨论】:
-
添加一些示例表数据和预期结果(作为格式化文本,而不是图像。)
标签: sql sql-server sql-server-2012 subquery aggregate-functions