为了账号安全,请及时绑定邮箱和手机立即绑定

mysql 语句:将两个列相减后,将每个人的相减结果相加,再根据用户名更新到另一张表

mysql 语句:将两个列相减后,将每个人的相减结果相加,再根据用户名更新到另一张表

wuzzxx 2015-09-18 16:37:19
由两个列 请假开始时间 请假结束时间  得到请假时长(小时),再拿得到的请假时长除以工作日7.5小时,得到请假的时间根据员工和请假类型得到每个员工的各个请假类型的请假时间比如得到这样的结果:  李红 请事假  7.5小时 /7.5 = 1再把 这个事假 1更新到另一张表中 的事假字段中如  tb1(请假表)  applicat          le_start_time           le_ end_time           le_type                            李红           2015-09-18  8:30       2015-09-18 18:00    事假   tb2  applicat      personal_leave(事假/天)     李红                1我现在是这样取得事假的总时长的update  select sum(`ay_personal_leave`) from (select TIMESTAMPDIFF (HOUR,`le_start_time`,`le_end_time`)              as `ay_personal_leave`            from `lk_leave` where `le_type` = '事假' and applicat = '李红' )t但是我还没有除以7, 也没有更新到 tb2,而且这里的查询只是单个人的,如果是多个人的怎么查出来,然后更新到另一张表呢,很紧急!希望大神帮帮我!
查看完整描述

2 回答

?
pardon110

TA贡献1038条经验 获得超227个赞

关键在于按请假类型,人,得到相应的请假时长,可以按人分组(group by )请假类型过滤条件(having+条件)sum求各类型总时长。你事件+人的条件且明显错误,如果有病假,婚假,就都查不到了

查看完整回答
反对 回复 2015-09-18
  • wuzzxx
    wuzzxx
    那个having我很少用,您可以说下怎么写吗,菜鸟!
  • wuzzxx
    wuzzxx
    现在每个人的事假天是这样查出来的, select`applicat`,SUM( TIMESTAMPDIFF (HOUR,`le_start_time`,`le_end_time`) /7)as `ay_personal_leave` from `lk_leave` where `le_type` = '事假' group by `applicat` 再把SUM的结果根据条件 tb1.applicat =tb2.applicat更新到tb2的一个字段中,该怎么做呢。
  • 2 回答
  • 0 关注
  • 3109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信