我有一个表
TABLE DT(类型,金额,日期)
现在我想查出某一类型某个日期或是该日期最接近日期的那一批数据,如何查。
比如:
类型 金额 日期
1 200,20110101
1 230,20110201
1 300,20110101
1 202,20110202
1 203,20110202
1 204,20110210当我提交的日期为20110204,可是因为没有该日期的值,便查询出来的为20110202的值,
为:
1 202,20110202
1 203,20110202
TABLE DT(类型,金额,日期)
现在我想查出某一类型某个日期或是该日期最接近日期的那一批数据,如何查。
比如:
类型 金额 日期
1 200,20110101
1 230,20110201
1 300,20110101
1 202,20110202
1 203,20110202
1 204,20110210当我提交的日期为20110204,可是因为没有该日期的值,便查询出来的为20110202的值,
为:
1 202,20110202
1 203,20110202
解决方案 »
- 谁能详解一下exists同一张表的比较
- 输出参数的问题
- 在T-SQL中如何得到update或insert的记录件数?
- 如何能把数据库中储存的二进制文件导出来,用sql语句实现
- 如何SQL简便复制单条数据?
- java 调用存储过程 不能执行sp_addlinkedserver 着急 着急 着急 着急 着急 !
- 我现在对数据库并发的概念不是很清楚,请大家就下面的问题能解开一直困扰我的这个问题,先表示感谢了.
- 紧急!! 求教一个问题,请各位高手抬举手之举,帮我解决一下!
- 如何在SQL中定义枚举类型
- SQL 2008 如何获取存储过程返回数据 的 列名
- 存储过程多个判断参数
- 求助 sql2008 R2 如何登录单用户模式
where 日期<='20110204'
and not exists
(select 1 from tb a where a.类.型=b.类型 and b 日期<='20110204'
and b.日期>a.日期)
select *
from tb t
where 日期 = (select max(日期) from tb where 日期 <= '20110204')
where 日期<='20110204'
and not exists
(select 1 from tb a where a.类型=b.类型 and b.日期<='20110204'
and b.日期>a.日期)
select *
from tb t
where 日期 = (select max(日期) from tb
where 类型=t.类型 and 日期 <= '20110204')
*
from
tb t
where
日期 = (select max(日期) from tb where 类型=t.类型 and 日期 <= '20110204')