求一个思路:二表关联查询,一表所有人员信息,二表部分人员信息。。。

jarodzhao 2017-11-24 09:44:55
在做考勤模块,一个是用户表,包括公司所有人员信息。另外一个表存储人员的异常考勤记录,每天都会有一部分用户信息(迟到和请假的部分)。
表一


表二


要在这两个表的基础上出每天或每周的考勤报表,有迟到、请假的显示该时段的迟到或请假次数,没有的显示0



请假如何查询,谢谢了
...全文
295 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jarodzhao 2017-12-05
  • 打赏
  • 举报
回复
最近工作较忙,这个问题换了个思路。。。具体回复没有细看。 近期抽出时间仔细测试一下诸位回复。。。还请稍候结贴
walkuere 2017-12-01
  • 打赏
  • 举报
回复
引用 5 楼 SCH_Enginer 的回复:
select dept as 部门,emp as 员工, case when a.state=1 then '请假' when a.state=2 then '迟到' END as 状态, empDate as 日期 from (select csdn2_1.*,csdn2_2.state,csdn2_2.empDate from csdn2_1 left JOIN csdn2_2 on csdn2_1.emp = csdn2_2.emp) a
这个基础上再join一下或者sum一下就差不多了 对了,我看到这个第一眼的感觉是cross join,这个思路可以吗?
shuyb71 2017-11-29
  • 打赏
  • 举报
回复
楼主是不是一个这样的SQL: select t1.*,t2.cd,t3.qj from ( tbl_renyuan t1 left join (select department,name,count(*) cd from tbl_kaoqin where status=1 #迟到 and date='2017-1-1' group by department,name) t2 on t1.department=t2.department and t1.name=t2.name) left join (select department,name,count(*) qj from tbl_kaoqin b where status=2 #请假 and date='2017-1-1' group by department,name) t3 on t1.department=t3.department and t1.name=t3.name;
SCH_Enginer 2017-11-28
  • 打赏
  • 举报
回复
select dept as 部门,emp as 员工,
case
when a.state=1 then '请假'
when a.state=2 then '迟到'
END as 状态,
empDate as 日期
from
(select csdn2_1.*,csdn2_2.state,csdn2_2.empDate from csdn2_1 left JOIN csdn2_2 on csdn2_1.emp = csdn2_2.emp) a

jarodzhao 2017-11-24
  • 打赏
  • 举报
回复
引用 1 楼 ulben 的回复:
你先告诉我状态1和2是什么,请假和迟到吗? 第三张图又是什么,你的效果模拟?
状态1和状态2就是迟到和请假 第三张图是模拟效果图 和里理解的完全一样
Gunlance 2017-11-24
  • 打赏
  • 举报
回复
你先告诉我状态1和2是什么,请假和迟到吗? 第三张图又是什么,你的效果模拟?
jarodzhao 2017-11-24
  • 打赏
  • 举报
回复
引用 3 楼 ulben 的回复:
[quote=引用 2 楼 zht_ok 的回复:] [quote=引用 1 楼 ulben 的回复:] 你先告诉我状态1和2是什么,请假和迟到吗? 第三张图又是什么,你的效果模拟?
状态1和状态2就是迟到和请假 第三张图是模拟效果图 和里理解的完全一样[/quote] 那么同一个人同一天有两个状态又是什么意思,你的需求我都不理解怎么给你分析问题[/quote] 一人一天内的确可能存在会有两种甚至多种状态的 比方说:迟到,外出,未签退。。。都可能在同一天发生
Gunlance 2017-11-24
  • 打赏
  • 举报
回复
引用 2 楼 zht_ok 的回复:
[quote=引用 1 楼 ulben 的回复:] 你先告诉我状态1和2是什么,请假和迟到吗? 第三张图又是什么,你的效果模拟?
状态1和状态2就是迟到和请假 第三张图是模拟效果图 和里理解的完全一样[/quote] 那么同一个人同一天有两个状态又是什么意思,你的需求我都不理解怎么给你分析问题

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧