注册 登录
编程论坛 SQL Server论坛

[求助]请问这个查询语句怎么写,从多条相同的数据选取第一条?

orantom 发布于 2007-04-14 19:16, 622 次点击

1 2005-4-20 12:01:43 3.57
1 2005-4-20 13:01:43 3.36
1 2005-4-20 13:01:44 3.57
1 2005-4-20 14:01:43 3.29

1 2005-4-21 0:01:44 3.55
1 2005-4-21 0:01:45 3.45
1 2005-4-21 1:01:44 3.49
1 2005-4-21 1:01:45 3.55

2 2005-4-22 0:01:45 3.96
2 2005-4-22 0:01:46 4.16
2 2005-4-22 1:01:45 3.93
2 2005-4-22 1:01:46 3.96

2 2005-4-23 17:01:47 4.95
2 2005-4-23 18:01:46 5.18
2 2005-4-23 18:01:47 4.86
2 2005-4-23 19:01:46 5.16


我想要的查询结果是:

1 2005-4-20 12:01:43 3.57
1 2005-4-21 0:01:44 3.55
2 2005-4-22 0:01:45 3.96
2 2005-4-23 17:01:47 4.95

也就是只要每个日期的第一条数据,希望各位高手帮忙!

5 回复
#2
orantom2007-04-14 22:28
已经解决了!
#3
IPV62007-04-15 14:59

楼主,能不能把解决方法发表啊?

#4
scindy2007-04-15 19:50

是啊,把解决方法分享一下了`~~


#5
xiyou4192007-04-15 22:01

设表是table,列名分别是:a,b,c
a b c
1 2005-4-20 12:01:43 3.57
1 2005-4-20 13:01:43 3.36
1 2005-4-20 13:01:44 3.57
1 2005-4-20 14:01:43 3.29

1 2005-4-21 0:01:44 3.55
1 2005-4-21 0:01:45 3.45
1 2005-4-21 1:01:44 3.49
1 2005-4-21 1:01:45 3.55

2 2005-4-22 0:01:45 3.96
2 2005-4-22 0:01:46 4.16
2 2005-4-22 1:01:45 3.93
2 2005-4-22 1:01:46 3.96

2 2005-4-23 17:01:47 4.95
2 2005-4-23 18:01:46 5.18
2 2005-4-23 18:01:47 4.86
2 2005-4-23 19:01:46 5.16


select * from table t1 where
((select count(1) from table t2 where
t1.a=t2.a and convert(varchar(10),t1.b,110)=convert(varchar(10),t2.b,110)
and t2.b<=t1.b)=1)

#6
初学Delphi2007-04-17 14:00
按照substring(datetime,1,10)分组
group by substring(datetime,1,10)
1