每年的总时数

时间:2017-09-14 16:51:13

标签: 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'

1 个答案:

答案 0 :(得分:0)

由于您要删除硬编码的“雇用日期”,您需要实施某种方式来计算。在下面的查询中,我使用(手动设置)变量来说明查询的其余部分:

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(*)则为:{{1}},它会重要:)