我正在尝试根据他们每年工作的小时数计算某人的服务年限。从租用日期到每年的周年日期,小时数必须超过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'
答案 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}},它会重要:)