2010年12月16日

[GH] 檢查加班補休時數是否一致

DECLARE @OT TABLE
(
  PER_SERIL_NO PER_SERIL_NO
, OT_COMPEN_HR FLOAT
, OT_COMPEN_RHR FLOAT
)
DECLARE @LEV TABLE
(
  PER_SERIL_NO PER_SERIL_NO
, LEV_HR FLOAT
, LEV_BORROW_HR FLOAT
)
INSERT  INTO @OT
        SELECT  PER_SERIL_NO
              , [OT_COMPEN_HR] = SUM(OT_COMPEN_HR)
              , [OT_COMPEN_RHR] = SUM(OT_COMPEN_RHR)
        FROM    LOL_OT
        WHERE   EFORM_STATUS_COD IN ( 'W', 'P' )
        GROUP BY PER_SERIL_NO

INSERT  INTO @LEV
        SELECT  PER_SERIL_NO
              , [LEV_HR] = SUM(LEV_HR)
              , [LEV_BORROW_HR] = SUM(LEV_BORROW_HR)
        FROM    LOL_LEV
        WHERE   EFORM_STATUS_COD IN ( 'W', 'P' )
                AND LEV_TYPE_COD = '00014'
        GROUP BY PER_SERIL_NO

SELECT  A.PER_SERIL_NO
      , A.OT_COMPEN_HR + B.LEV_BORROW_HR
      , A.OT_COMPEN_RHR + B.LEV_HR
      , A.OT_COMPEN_HR
      , A.OT_COMPEN_RHR
      , B.LEV_HR
      , B.LEV_BORROW_HR
FROM    @OT A
JOIN    @LEV B ON A.PER_SERIL_NO = B.PER_SERIL_NO
WHERE   1 = 1
--AND A.PER_SERIL_NO = 'some one'
        AND ( A.OT_COMPEN_HR + B.LEV_BORROW_HR ) != ( A.OT_COMPEN_RHR + B.LEV_HR )

SELECT  *
FROM    LOL_OT
WHERE   PER_SERIL_NO = 'some one'
SELECT  *
FROM    LOL_LEV
WHERE   PER_SERIL_NO = 'some one'
        AND LEV_TYPE_COD = '00014'
        AND EFORM_STATUS_COD IN ( 'W', 'P' )
SELECT  *
FROM    LOL_LEV_OT
WHERE   OT_APPLY_NO = 'some one'

沒有留言 :

張貼留言