select * from tb t where 日期 = (select top 1 日期 from tb order by 日期 desc)
select * from 出入情况表 a where 日期=(select max(ID) from 出入情况表 where datediff(dd,t.日期,日期)>0)
select * from 出入情况表 a where 日期=(select max(日期) from 出入情况表 where datediff(dd,t.日期,日期)>0)
select * from 出入情况表 a where 日期=(select max(日期) from 出入情况表 where datediff(dd,a.日期,日期)>0)
create table #TT ( 日期 Datetime, 数据1 int, 数据2 int ) insert into #TT select '2009-06-01',1000,600 insert into #TT select '2009-06-01',342,788 insert into #TT select '2009-06-02',45,566 insert into #TT select '2009-07-07',80,90 insert into #TT select '2009-07-07',90,100 select * from #TT where 日期 in(select max(日期) 日期 from #TT )日期 数据1 数据2 ----------------------- ----------- ----------- 2009-07-07 00:00:00.000 80 90 2009-07-07 00:00:00.000 90 100(2 行受影响)
感谢各位答复,我作用视图用的,如果我视图 create 视图1 as select * from 出入情况表 a where 日期=(select max(ID) from 出入情况表 where datediff(dd,t.日期,日期)>0)select * from 视图1 where 日期 >='2009-06-01' and 日期 <='2009-06-02' 出来的数据不对啊
--你这里要传参数,最好用存储过程。如: create proc p_wsp @star datetime @end datetime as select * from 出入情况表 a where 日期=(select max(日期) from 出入情况表 where 日期 between @star and @end)
--你这里要传参数,最好用存储过程。如: create proc p_wsp @star datetime,--掉了逗号 @end datetime as select * from 出入情况表 a where 日期=(select max(日期) from 出入情况表 where 日期 between @star and @end)
很简单的: select * from 出入情况表 t where not exists(select 1 from 出入情况表 where datediff(dd,t.日期,日期)>0)
select * from 出入情况表 a where 日期=(select max(日期) from 出入情况表 where datediff(dd,a.日期,日期)>0)
(
日期 Datetime,
数据1 int,
数据2 int
)
insert into #TT select '2009-06-01',1000,600
insert into #TT select '2009-06-01',342,788
insert into #TT select '2009-06-02',45,566
insert into #TT select '2009-07-07',80,90
insert into #TT select '2009-07-07',90,100 select * from #TT where 日期 in(select max(日期) 日期 from #TT )日期 数据1 数据2
----------------------- ----------- -----------
2009-07-07 00:00:00.000 80 90
2009-07-07 00:00:00.000 90 100(2 行受影响)
create 视图1 as
select * from 出入情况表 a where 日期=(select max(ID) from 出入情况表 where datediff(dd,t.日期,日期)>0)select * from 视图1 where 日期 >='2009-06-01' and 日期 <='2009-06-02' 出来的数据不对啊
create proc p_wsp
@star datetime
@end datetime
as
select * from 出入情况表 a where 日期=(select max(日期) from 出入情况表
where 日期 between @star and @end)
--你这里要传参数,最好用存储过程。如:
create proc p_wsp
@star datetime,--掉了逗号
@end datetime
as
select * from 出入情况表 a where 日期=(select max(日期) from 出入情况表
where 日期 between @star and @end)
select * from 出入情况表 t where not exists(select 1 from 出入情况表 where datediff(dd,t.日期,日期)>0)