我有一个包含startdate(日期时间)的项目历史记录的表 - 它应该只允许一个日期对应一个项目。有一个验证过程将采用一个日期并返回一个代码(成功/失败原因代码)以及最接近今天的'下一个'历史项目。Sql Server获取最近(未来)到今天的行
如果这是表数据(ID日期标题):
1 16/05/2010 'item 1'
2 17/05/2010 'item 2'
3 20/05/2010 'item 3'
我想验证一个条目:
exec Validate '18/05/2010' 'item 4'
将返回我: '项目4',因为该条目是有效的,虽然数据没有被提交,但是它将我的新条目作为下一个可用条目返回,因为它距离今天最近(将来)。
exec Validate '24/05/2010' 'item 5'
应返回我: '项目3'。日期也是有效的,但有一个记录,然后是新的日期,但晚于今天。
你能再次解释项目的东西吗?为什么项目4在有更晚的日期(对于项目3)时没有匹配,但是项目5从项目3行获取数据时,此行在“之前” – gbn 2011-05-17 11:56:22
此刻,这只是一个验证例程,没有任何内容被提交给数据库 - 项目4在测试'项目5'时不会存在于表格中。所以proc应该会返回我更接近明天的日期(也许这是更好的方式来描述它) - 一排,或者我通过的任何东西。 – 2011-05-17 12:29:13