抱歉标题混乱。请告诉我是否可以通过 db 请求进行操作。假设我们有下表
ind_id name value date
----------- -------------------- ----------- ----------
1 a 10 2010-01-01
1 a 20 2010-01-02
1 a 30 2010-01-03
2 b 10 2010-01-01
2 b 20 2010-01-02
2 b 30 2010-01-03
2 b 40 2010-01-04
3 c 10 2010-01-01
3 c 20 2010-01-02
3 c 30 2010-01-03
3 c 40 2010-01-04
3 c 50 2010-01-05
4 d 10 2010-01-05
我需要查询所有行以包含给定日期的每一行ind_id
,如果没有ind_id
给定日期,则取最近的较低日期,如果没有任何较低的日期,则返回 ind_id + name(name/ind_id 对相等)带空值。例如,日期是 2010-01-04,我希望得到以下结果:
ind_id name value date
----------- -------------------- ----------- ----------
1 a 30 2010-01-03
2 b 40 2010-01-04
3 c 40 2010-01-04
4 d NULL NULL
如果可能的话,如果有人帮助我构建查询,我将不胜感激。我正在使用 SQL Server 2008。