select top 1 * from 表 where 进货日期<'2005-3-29' order by 进货日期 desc
declare @a table(产品号 nvarchar(20),供应商 nvarchar(20),进货日期 datetime) insert @a(产品号,供应商,进货日期) values('100021','南京','2004-9-21') insert @a(产品号,供应商,进货日期) values('100021','上海','2005-1-29') insert @a(产品号,供应商,进货日期) values('100021','北京','2005-2-18') insert @a(产品号,供应商,进货日期) values('100021','广州','2005-3-27') insert @a(产品号,供应商,进货日期) values('100021','西安','2005-4-1')select * from @adeclare @time datetime set @time='2005-3-29' select top 1 * from @a where 进货日期<@time order by 进货日期 descset @time='2005-2-9' select top 1 * from @a where 进货日期<@time order by 进货日期 desc
--可以 select top 1 * from 表 where 进货日期<'2005-3-29' order by 进货日期 desc
declare @date datetime set @date = cast('2005-3-29' as datetime)select top 1 * from 表 where 进货日期< @date order by 进货日期 desc
谢谢楼上所有的,但又有新问题: 我如果加上top 1,就出错:未找到预期 FROM 关键字 怎么回事啊,谢谢了
--也可以不用topselect * from 表 a where 进货日期<'2005-3-29' and not exists(select * from 表 whee 进货日期>a.进货日期) --或者: select * from 表 a where 进货日期=(select max(进货日期) from 表 whee 进货日期<'2005-3-29')
select top 1 * from 表 where 进货日期<'2005-3-29' order by 进货日期 desc这就足够了,不用调存储过程了
SELECT TOP 1 产品号,供应商,进货日期 FROM WULIU WHERE (产品号='1000055') AND (TO_CHAR(进货日期,'YYYY-MM-DD')<'2005-02-23') ORDER BY 进货日期 DESC
数据库有问题,楼主不是用的sql server数据库吧? 试试我后面的写法
oralce数据库:SELECT 产品号,供应商,进货日期 FROM WULIU WHERE (产品号='1000055') and rownum=1 AND (TO_CHAR(进货日期,'YYYY-MM-DD')<'2005-02-23') ORDER BY 进货日期 DESC
order by 进货日期 desc
declare @a table(产品号 nvarchar(20),供应商 nvarchar(20),进货日期 datetime)
insert @a(产品号,供应商,进货日期)
values('100021','南京','2004-9-21')
insert @a(产品号,供应商,进货日期)
values('100021','上海','2005-1-29')
insert @a(产品号,供应商,进货日期)
values('100021','北京','2005-2-18')
insert @a(产品号,供应商,进货日期)
values('100021','广州','2005-3-27')
insert @a(产品号,供应商,进货日期)
values('100021','西安','2005-4-1')select * from @adeclare @time datetime
set @time='2005-3-29'
select top 1 * from @a where 进货日期<@time order by 进货日期 descset @time='2005-2-9'
select top 1 * from @a where 进货日期<@time order by 进货日期 desc
select top 1 * from 表 where 进货日期<'2005-3-29'
order by 进货日期 desc
set @date = cast('2005-3-29' as datetime)select
top 1 *
from
表
where
进货日期< @date
order by
进货日期 desc
我如果加上top 1,就出错:未找到预期 FROM 关键字
怎么回事啊,谢谢了
--或者:
select * from 表 a where 进货日期=(select max(进货日期) from 表 whee 进货日期<'2005-3-29')
order by 进货日期 desc这就足够了,不用调存储过程了
产品号,供应商,进货日期
FROM WULIU
WHERE (产品号='1000055')
AND (TO_CHAR(进货日期,'YYYY-MM-DD')<'2005-02-23')
ORDER BY 进货日期 DESC
FROM WULIU
WHERE (产品号='1000055') and rownum=1
AND (TO_CHAR(进货日期,'YYYY-MM-DD')<'2005-02-23')
ORDER BY 进货日期 DESC