sql查詢職工請假概微——請假天數跨月效實

cf手游奇怪君视频 www.uenwi.icu 日期:2019-05-27 / 人氣: / 來源:原創

  項目中要加以個月簽到概微頁面。需尋求:堅硬是用戶選擇月份,查詢該月職工簽到概微(帶擁有請假)。數據庫(mysql)中已擁有休假表(tt_offwork),表構造如次:

  壹末了尾沒擁有想到請假天數跨月的情景,直接就根據字段”from_date”去婚配用戶輸入的月份查出產記載根據又根據字段”day_num”就卻以知道他在此雕刻月休假幾天。譬如用戶選擇日期”2017-1”,后盾sql如次:

  后頭發皓數據擁有效實,統計休了7天(根據前往的字段”day_num”),但還愿此雕刻個月條休憩了5天,查詢sql發皓該職工跨月了。

  結實

  此雕刻個職工從2017-01-27 末了尾,到2017-02-02請假完一齊,盡共休7天。于是乎招致出產兩個效實:

  1. 假設查1月份簽到概微,那sql查出產休7天,但還愿1月份條休5天。

  2. 假設查2月份簽到概微,那根據字段”from_date”婚配不到2月份,鑒于該職工的宗始請假期期是在1月份,因此此雕刻筆記載就查不到,招致2月份微少了2天的請假天數。

  于是,末了尾剖析應當以什么環境去查詢sql才干保障數據是對的。職工請假能出產即興的所無情景:

  此雕刻邊寫圖片描繪

  方塊1-4代表職工能出產即興的4種請假的跨度情景,此雕刻四種情景邑在我們所查的月份范疇內。

  我們發皓:

  1. 月朔定父親于完一齊時間,不然堅硬是上個月。

  2. 月尾了壹定父親于末了尾時間,不然堅硬是下個月。

  按下面兩個環境查sql,就卻以查出產數據,不會出產即興下面說到的查2月份,但從1月份末了末了尾請假招致2月份查不到數據的情景。

  接上堅硬是何以計算,本月請假天數的效實。GREATEST(月初,末了尾) - LEAST(月尾了, 完一齊)

  好,那我寫得完整頓sql是

  考慮

  需尋求的關鍵堅硬是何以做環境判佩,把我說的4種情景,整頓個查出產。那從此雕刻四種情景找出產法則鉸到出產環境擁有點駢雜,此雕刻時分就卻以使用初中數學知啦,找出產不在我們所查月份范疇的集兒子合環境然后取統壹面就好了,清楚如次圖所畫的陰影片斷,堅硬是不快宜的查詢環境。此雕刻個很輕善看出產不快宜的環境是:月初父親于完一齊時間,月尾了小于末了尾時間。于是適宜的環境堅硬是取反,月初小于等于完一齊時間。月尾了父親于等于末了尾時間。

作者:locoy


推薦內容 Recommended

相關內容 Related

  • 友情鏈接:
  • uedbet??“è?2
  • 12???
  • 365??“è?2???
  • ?–°è‘??o??
  • cf手游奇怪君视频
  • Go To Top 回頂部