有個表存放請假記錄,字段有職員號、請假開始日期、開始時間、請假結束日期、結束時間、共請假小時數、請假原因、請假類別,其中請假類別包括補假和加班,它們的關系是加班之後30天內可以請補假,現在想要計算截到當天會有多少小時可以請補假?小弟愚笨,想了好久還是想不出怎麼計算?請大家幫幫忙!謝謝!

解决方案 »

  1.   

    select 職員號,sum(case when 請假類別='加班' then 共請假小時數 else 0 end)-sum(case when 請假類別='補假' then 共請假小時數 else 0 end)
    from T
    where datediff(day,開始日期,getdate())<30
    group by 職員號
      

  2.   

    To:pengda1i(冒牌大力 V0.3)
         請注意,加班的數據它是在請假申請了加班批了就OK的;
         同意你第二點的想法,可能要用到30日外的記錄
      

  3.   

    playwarcraft(时间就像乳沟,挤挤还是有的) 的方法可以