MS SQL选择具有条件的特定日期

时间:2018-02-05 14:51:38

标签: sql-server

Ins No  AimSeqNumber    LearnRefNumber  LearnStartDate  DateEmpStatApp  EmpId
1000214  1                  10v1         2017-06-30     2016-08-30  900271388
1000214  1                  10v1         2017-06-30     2016-07-30  900271388
1000214  1                  10v1         2017-06-30     2014-07-30  900871388
1000214  1                  10v1         2017-06-30     2015-07-30  905271388

嗨,我有一张这样的桌子。我想在LearnStartDate上或之前获得最新DateEmpStatApp的empID

我不知道如何处理这个问题。我最初的逻辑是使用日期部分函数并找出天数的差异。然后使用min函数获取所选行。但是我仍然会得到不止一行。因为我只想要对应于learnstartdate

的最新DateEmpStatApp日期的empid

1 个答案:

答案 0 :(得分:0)

SELECT TOP (1) EmpId 
FROM MyTable
WHERE DateEmpStatApp < LearnStartDate
ORDER BY DateEmpStatApp DESC

只需限制符合条件的第一行

  • &#34;在LearnStartDate之前或之前的DateEmpStatApp&#34;
  • &#34;最新DateEmpStatApp&#34;

评论后编辑

SELECT EmpId, LatestDateEmpStatApp = MAX(DateEmpStatApp)
FROM MyTable
WHERE DateEmpStatApp < LearnStartDate
GROUP BY EmpId