SQL:where 子句或类似子句中的变量值?

SQL: variable values inside of a where clause, or similar?

情况: 试图在雇用后 90 天和雇用后 1 年获得员工的工资。

我一直在尝试这样的事情:

SELECT payrate
FROM dbo.table
WHERE (table.checkdate BETWEEN table.startdate +90 AND table.startdate +97)

我知道以上内容远非有效,但这只是一个简单的例子。

我想我需要 +90 和 +97,因为检查每周进行一次,可能不会恰好在第 90 天。

我猜您正在使用 SQL 服务器。这是一种方法:

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);

用于标识每个员工的列的 ?

标记第一个答案。

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 天的日期范围内每条记录只有一个 check/payrate。