日期:2014-05-18  浏览次数:20586 次

最近日期的条件查询
CREATE TABLE [dbo].[TABLE1] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[Type] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Date] [datetime] NULL ,
[Price] [money] NULL 
) ON [PRIMARY]
--数据
1 A 2007-01-01 00:00:00.000 1.0000
2 B 2008-08-09 00:00:00.000 2.0000
3 A 2007-08-01 00:00:00.000 .5000
4 A 2001-01-01 00:00:00.000 .5000



有一个查询是这么写的
SELECT min(price) FROM TABLE1 where [date]>'2008-8-8' and Type<>'B'

当数据如上面时,即大于2008-8-8日期没有数据时,
查询的最小单价为 小于2008-8-8的最近日期的那个单价,即使红色那条

请问SQL如何实现? 


押宝没分啦,最后一分献上.

后面会补上分。
 

------解决方案--------------------
SQL code
select top(1) * from tb 
where not exists(select 1 from tb [date]>'2008-8-8' and Type<>'B')
and [date]< '2008-08-08'
order by date desc

------解决方案--------------------
同样的效果吧。
------解决方案--------------------
你这是2010年,不可能比2008年要小啊。
------解决方案--------------------
SQL code
select max([date]),min(price) from t1 where [date]<'2008-8-8' and type<>'B'