久久机这里只有精品,国产69精品一区二区亚洲孕妇,91精品国产综合久久婷婷香蕉,午夜久久久久久电影

最新活動:電腦PC端+手機(jī)端+微網(wǎng)站+自適應(yīng)網(wǎng)頁多模板選擇-建站388元起價?。?!
當(dāng)前位置:主頁 > 網(wǎng)站建設(shè) > SQL語句練習(xí)實例之六 人事系統(tǒng)中的缺勤(休假)

SQL語句練習(xí)實例之六 人事系統(tǒng)中的缺勤(休假)

時間:2023-05-22 09:05:22 閱讀: 文章分類: 網(wǎng)站建設(shè) 作者: 網(wǎng)絡(luò)小編

導(dǎo)讀:1建站知識這是一個人事系統(tǒng)中的示例,要求記錄一下員工的缺勤情況網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)。

網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)

復(fù)制代碼 代碼如下:

---這是一個人事系統(tǒng)中的示例,要求記錄一下員工的缺勤情況 ---1.要在表中記錄一下缺勤計分,是對經(jīng)常缺勤者的一種處罰性計分 ---規(guī)則: ---1.如果員工在一年內(nèi)的缺勤計分達(dá)到50,就會可以解雇該員工。 ---2.如果員工缺勤連續(xù)超過一天,就視為長病假,這時,第二天,第三天及以后的天數(shù)都不會統(tǒng)計該員工的缺勤計分 ----這些天也不算為缺勤。 create table absence ( empId int not null, absenceDate datetime not null, reason nvarchar(100) not null, severityPoints int ) go ----2.如果員工缺勤連續(xù)超過一天,就視為長病假,這時,第二天,第三天及以后的天數(shù)都不會統(tǒng)計該員工的缺勤計分 ----這些天也不算為缺勤。 ---這個怎么實現(xiàn)呢? ---最簡單的方法,就是允許severityPoint允許為0 ---更新 ‘長病假',同時缺勤計分為0 update absence set severityPoints=0,reason='長病假' where exists (select * from absseo網(wǎng)站優(yōu)化ence as a where absence.empId=a.empId and absence.absenceDate=dateadd(d,-1,a.absenceDate) ) --1.如果員工在一年內(nèi)的缺勤計分達(dá)到50,就會可以解雇該員工。 select empid,SUM(severityPoints) as totalPoints from absence group by empId --刪除 --delete from employee where empid =(select a.empid from absence wh網(wǎng)站建設(shè)公司ere a.empid=employee.empid group by a.empid having sum(severityPoints)>=50) -- ---上面的語句中是否存在Bug呢? ---有。 ---1.子查詢沒有按鈕要求檢查員工的缺勤計分在一年內(nèi)是否達(dá)到或超過50,它需要在where子名中進(jìn)行額外的日期范圍檢查 --修改之后的刪除 --delete from employee where empid =(select a.empid from absence where a.empid=employee.empid --and absenceDate between dateadd(d,-365,getdate()) and getdate() --group by a.empid having sum(severityPoints)>=50) -- --2關(guān)于在刪除了員工之后,卻沒有刪除此員工的缺勤記錄,需要顯式刪除或隱式刪除,隱式刪除可以添加級聯(lián)刪除。 ---假設(shè):如果在缺勤期間,員工不會調(diào)換部門,則可以使用以下語句來提高性能 update absence set seve網(wǎng)站建設(shè)哪家好rityPoints=0,reason='長病假' where exists (select * from absence a where a.empId=absence.empId and dateadd(d,-1,absence.absenceDate)=a.absencedate ) -------第三,再考慮以下這種情況: ---對于跨星期的長病假,例如:如果你在周未生病,對公司來說是沒有問題的,因為周未一般是不用上班的。 ---接著你在第二個星期一個星期都缺勤了,第三個星期的星期一也缺勤了,上面的update語句只會把第二個星期的五個工作日 ----設(shè)為長病假,第一周的周五與第三周的周一,都將視為缺勤,并計算缺勤計分。所以上面的update中的子查詢需要對 ---遺漏的一系列日期做額外的處理。 ---方法: ---1.對預(yù)先安排好的休息日(如周六,周日,五一,十一等)添加一個缺勤計分為0的代碼,可以避免周未與節(jié)假日的問題。 --對于這類問題需要新增一張表calendar用來計算員工的工作 。 create table calendar ( calendarDate datetime, --日期 Weeks int, --第幾周 weekday varchar(20),--星期幾 ) select empId,SUM(severitypoints) as score from absence a ,calendar b where b.calendarDate=a.absenceDate and a.absenceDate between DATEADD(d,-365,getdate()) and GETDATE() group by empId having SUM(a.severitypoints)>=50 go drop table absence drop table calendar

關(guān)鍵詞標(biāo)簽: SQL 語句 之六

聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-22 ,文章SQL語句練習(xí)實例之六 人事系統(tǒng)中的缺勤(休假)主要講述語句,之六,SQL網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_4354.html

我的IDC 網(wǎng)站建設(shè)技術(shù)SEOUC.COM
專注網(wǎng)站建設(shè),SEO優(yōu)化,小程序設(shè)計制作搭建開發(fā)定制網(wǎng)站等,數(shù)千家網(wǎng)站定制開發(fā)案例,網(wǎng)站推廣技術(shù)服務(wù)。
  • 5000+合作客服
  • 8年從業(yè)經(jīng)驗
  • 150+覆蓋行業(yè)
  • 最新熱門源碼技術(shù)文章

    主站蜘蛛池模板: 泌阳县| 洛南县| 民和| 贺兰县| 保定市| 锦州市| 湘西| 克东县| 金昌市| 临清市| 武山县| 得荣县| 南宫市| 瑞丽市| 宁安市| 高要市| 沁源县| 泸溪县| 华宁县| 昌吉市| 藁城市| 神农架林区| 梨树县| 营山县| 观塘区| 五台县| 呼伦贝尔市| 阳新县| 娄底市| 舞钢市| 华容县| 苍梧县| 通化市| 泊头市| 石泉县| 南澳县| 焉耆| 土默特右旗| 方正县| 秦安县| 建阳市|