情况: 试图在雇用后90天和雇用后1年获得员工的工资。
我一直在尝试这样的事情:
SELECT payrate
FROM dbo.table
WHERE (table.checkdate BETWEEN table.startdate +90 AND table.startdate +97)
我知道上述内容远非有效,但这只是一个简单的例子。
我认为我需要+90和+97,因为检查是每周完成的,可能不会完全落在第90天。
答案 0 :(得分:0)
我猜你正在使用SQL Server。这是一种方法:
SELECT TOP (1) WITH TIES payrate
FROM dbo.table t
WHERE t.checkdate >= dateadd(day, 90, t.startdate)
ORDER BY ROW_NUMBER() OVER (PARTITION BY ? ORDER BY t.startdate);
标识每位员工的列的?
。
答案 1 :(得分:0)
标记第一个答案。
SELECT t.employeeid, t.payrate
FROM dbo.table t
WHERE (
--GET CHECKS BETWEEN THE 90 AND 97 DATE RANGE
t.checkdate >= dateadd(day, 90, t.startdate)
AND
t.checkdate <= dateadd(day, 97, t.startdate)
)
一年用365和372代替90和97。
这假设在该90天日期范围内每条记录只有一个支票/支付。