按课汇总在岗人数

SELECT DISTINCT a.emp_id, b.emp_fname, CONVERT(VARCHAR(10), a.sign_time, 120) AS sign_date, c.depart_name

FROM dbo.TimeRecords a

     INNER JOIN dbo.employeeinfo b ON a.emp_id=b.emp_id

     INNER JOIN dbo.Departs c ON LEFT(b.depart_id, 9)=c.depart_id

WHERE CONVERT(VARCHAR(10), a.sign_time, 120)=CONVERT(VARCHAR(10), GETDATE(), 120)AND LEFT(b.depart_id, 9) IN ('008010101', '008010102', '008010103');

FineReport 用户bmXwf6959003 发布于 2022-5-7 14:53
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-5-7 14:56

你这不SQL都写好了么?拖到单元格 

image.png

  • 用户bmXwf6959003 用户bmXwf6959003(提问者) 要写语句
    2022-05-10 09:42 
  • Z4u3z1 Z4u3z1 回复 用户bmXwf6959003(提问者) 不知道你各字段的含义,只有猜 SELECT depart_name,COUNT(emp_id) AS SL FROM (SELECT DISTINCT a.emp_id, b.emp_fname, CONVERT(VARCHAR(10), a.sign_time, 120) AS sign_date, c.depart_name FROM dbo.TimeRecords a INNER JOIN dbo.employeeinfo b ON a.emp_id=b.emp_id INNER JOIN dbo.Departs c ON LEFT(b.depart_id, 9)=c.depart_id WHERE CONVERT(VARCHAR(10), a.sign_time, 120)=CONVERT(VARCHAR(10), GETDATE(), 120)AND LEFT(b.depart_id, 9) IN (\'008010101\', \'008010102\', \'008010103\')) T GROUP BY depart_name
    2022-05-10 09:46 
  • 1关注人数
  • 245浏览人数
  • 最后回答于:2022-5-7 14:56
    请选择关闭问题的原因
    确定 取消
    返回顶部