<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-199  評論-203  文章-11  trackbacks-0
    --今天一天爲了計算一個全勤獎,快把我給鬱悶死了,如下是我今天的一點成績,那位朋友如果有更好的建議歡迎--指教!謝謝...!
    SELECT 年月,部門編號,員工ID,員工卡號,姓名,事假天數(shù),曠工天數(shù),/*進廠日期,上班日期,離職日期,上班時間,離職時間,*/
      --根據(jù)離職人員離職日期分給相應全勤獎.
      CASE 離職時間 WHEN 0 THEN 全勤獎 WHEN 1 THEN 全勤獎-10 WHEN 2 THEN 全勤獎-20 ELSE 全勤獎*0 END 全勤獎
      FROM(
      --C
      SELECT 年月,部門編號,員工ID,員工卡號,姓名,事假天數(shù),曠工天數(shù),進廠日期,上班日期,離職日期,上班時間,離職時間,
        --曠工者全勤為0,新進員工3號以後進廠的全勤為0,離職人員如果是在本月倒數(shù)第三天之前的全勤為0.
        CASE WHEN 曠工天數(shù)> 0 OR 上班時間 >= 3 OR 離職時間 >=3 THEN 0
           WHEN 上班時間= 2 THEN --新進員工2號進廠的全勤為10
           CASE WHEN 事假天數(shù) = 0    THEN 10
              WHEN 事假天數(shù) = 0.5 THEN 5
              WHEN 事假天數(shù) >= 1  THEN 0 END
           WHEN 上班時間=1 THEN --新進員工1號進廠的全勤為20
            CASE WHEN 事假天數(shù) = 0    THEN 20
              WHEN 事假天數(shù) = 0.5 THEN 15
              WHEN 事假天數(shù) = 1.5 THEN 5
              WHEN 事假天數(shù) >= 2  THEN 0 END
         WHEN 上班時間=0 THEN --老員工全勤為30
           CASE WHEN 事假天數(shù) = 0    THEN 30
              WHEN 事假天數(shù) = 0.5 THEN 25
              WHEN 事假天數(shù) = 1    THEN 20
              WHEN 事假天數(shù) = 1.5 THEN 15
              WHEN 事假天數(shù) = 2    THEN 10
              WHEN 事假天數(shù) = 2.5 THEN 5
              WHEN 事假天數(shù) >= 3    THEN 0 END   
         END 全勤獎
      FROM(
       SELECT 年月,部門編號,員工ID,員工卡號,姓名,進廠日期,上班日期,離職日期,
      --如果進廠年月等于上班年月,表示此員工為新員工.
      CASE WHEN LEFT(進廠日期,6)=LEFT(上班日期,6) THEN CAST(RIGHT(上班日期,2)AS INT) ELSE 0 END 上班時間,
      --如果進廠年月等于上班年月,表示此本月即將離職
      CASE WHEN LEFT(離職日期,6)='200902' THEN
       CAST(RIGHT(CONVERT(VARCHAR(8),DATEADD(D,-1,DATEADD(M,1,'20090201')),112),2) AS INT)-
       CAST(RIGHT(離職日期,2)AS INT)
       ELSE 0 END  離職時間,
      ISNULL(SUM(CASE 假別 WHEN '事假' THEN 假別天數(shù)  END),0) 事假天數(shù),
      ISNULL(SUM(CASE 假別 WHEN '曠工' THEN 假別天數(shù) END),0) 曠工天數(shù)
       FROM(
        SELECT D.年月,D.部門編號,D.員工ID,D.員工卡號,D.姓名,D.假別,D.假別天數(shù),E.進廠日期,E.上班日期,E.離職日期
         FROM(
         SELECT C.年月,A.部門編號,A.員工ID,A.員工卡號,A.姓名,
           CASE WHEN C.假別!=  '曠工' AND C.假別!='輪休' THEN '事假' ELSE C.假別 END 假別,SUM(C.天數(shù)) 假別天數(shù)--,進廠日期
          FROM SPG_TECH.每日刷卡 A 
          INNER JOIN ( --員工本月最後一天在那個部門上班算那個部門
             SELECT 員工ID,MAX(日期) AS 日期   FROM SPG_TECH.每日刷卡
              WHERE CONVERT(CHAR(6),日期,112) LIKE '200902'+'%' AND 上班!='' 
                      GROUP BY 員工ID
             )B
          ON A.員工ID=B.員工ID AND A.日期=B.日期
          INNER JOIN( --根據(jù)員工ID,統(tǒng)計底薪天數(shù)
             SELECT CONVERT(CHAR(6),日期,112) 年月,員工ID,員工卡號,姓名,
               CASE 假別 WHEN '' THEN 備注 ELSE 假別 END AS 假別,備注,
               CASE  WHEN 假別 ='' AND 備注 = '' THEN 0 ELSE COUNT(備注) END 備註,
               CASE WHEN 備注 != '曠工' AND 備注 != '' THEN COUNT(備注) * 0.5 ELSE
               CASE  WHEN 假別 ='' AND 備注 = '' THEN 0 ELSE COUNT(備注) END END 天數(shù)
              FROM SPG_TECH.每日刷卡
              WHERE  CONVERT(CHAR(6),日期,112) LIKE '200902'+'%' --AND 姓名='朱小女'
              GROUP BY CONVERT(CHAR(6),日期,112),員工ID,員工卡號,姓名,假別,備注
           )C
          ON A.員工ID = C.員工ID
         
          WHERE 部門編號 IN( SELECT 部門編號  FROM SPG.SPG_TECH.部門資料     --只針對針車部門,過濾其它部門
              WHERE 廠內外='內' AND 是否職干!='是' AND 單位區(qū)別='A'  AND 部門編號 LIKE '%' +'-S'+'%')
              AND 部門編號='BL3-S4'  
          GROUP BY C.年月,A.員工ID,A.姓名,A.員工卡號,A.部門編號,CASE WHEN C.假別!=  '曠工' AND C.假別!='輪休' THEN '事假' ELSE C.假別 END
       
         )D
         INNER JOIN(
          SELECT A.員工ID,A.員工卡號,A.姓名,CONVERT(CHAR(8),MIN(A.日期),112) 上班日期,
           CONVERT(CHAR(8),B.進廠日期,112) 進廠日期,CONVERT(CHAR(8),B.離職日期,112) 離職日期
           FROM SPG_TECH.每日刷卡 A
           INNER JOIN SPG_TECH.員工資料 B
           ON A.員工ID = B.員工ID
           WHERE CONVERT(CHAR(6),日期,112) LIKE  '200902'+'%' -- AND A.部門編號='BL2-S1'
           GROUP BY A.員工ID,A.員工卡號,A.姓名,B.進廠日期,B.離職日期
           )E
         ON D.員工ID = E.員工ID
      )F GROUP BY  年月,部門編號,員工ID,員工卡號,姓名,進廠日期,上班日期,離職日期
     )G
    )H ORDER BY 年月,部門編號,員工卡號
    posted on 2009-04-09 19:32 Werther 閱讀(906) 評論(0)  編輯  收藏 所屬分類: 15.SQL Server
    主站蜘蛛池模板: 精品国产麻豆免费人成网站| 黄色a级免费网站| 国产精品99久久免费观看| 亚洲精品尤物yw在线影院| 国产亚洲情侣久久精品| 日本免费人成黄页网观看视频 | 亚洲免费视频网址| 91香蕉国产线在线观看免费| 亚洲视频2020| 免费播放一区二区三区| 久久久亚洲裙底偷窥综合| 日本高清免费观看| 久久精品国产亚洲av麻豆色欲 | 岛国片在线免费观看| 亚洲日韩精品A∨片无码加勒比| 在线免费视频一区| 久久亚洲精品成人无码| 国产乱子伦精品免费无码专区 | 亚洲一区免费观看| 亚洲三级电影网址| 久久不见久久见免费影院| 亚洲精品一卡2卡3卡四卡乱码| 破了亲妺妺的处免费视频国产 | 一区二区三区免费在线视频 | 亚洲国产成人久久综合碰碰动漫3d | 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产午夜亚洲不卡| 美女内射无套日韩免费播放| 亚洲视频无码高清在线| 国产精品免费一级在线观看| 无码精品人妻一区二区三区免费 | 亚洲日本一区二区三区在线不卡| 99视频在线免费观看| 亚洲精品国产成人| 午夜免费不卡毛片完整版| 国产精品成人69XXX免费视频| 久久亚洲精品AB无码播放 | 四虎永久在线精品免费影视 | 亚洲AV无码一区二区三区性色| 亚洲免费无码在线| 一区二区三区福利视频免费观看|