每年的总小时小时

  • 本文关键字:小时 sql sql-server
  • 更新时间 :
  • 英文 :


我正在尝试根据每年工作的时间来计算某人提供的服务年。从雇用日期到每年的周年纪念日,必须超过2080年。以下是我设置SQL每年设置小时的方式,但必须更新日期并每年运行。有一个更简单的方法吗?我可以有一个SQL总结了2080年以上的人工作了多少年?

SELECT Sum(hours)
FROM hours_txn
WHERE EMPNO = 1824 and Type = 'WRK'
and TransactionDate between '1989-04-15 00:00:00' and '1990-04-15 00:00:00'

由于要删除硬编码的"雇用日期",因此您需要实现某种方法来计算它。在下面的查询中,我使用(手动设置)变量来说明您的其余查询可能是什么样的:

begin
    declare @hiredate datetime
    set @hiredate = '1989-04-15'
    select count(*)
    from hours_txn
    where EMPNO = 1824 and Type = 'WRK'
    group by datediff(y, @hiredate, TransactionDate)
    having sum([hours]) > 2080
end
go

group by每年提供1个记录,having过滤到" 2080小时以上的年",而count(*),嗯,它很重要:)

最新更新