读书人

怎么同时取出最小日期和最大日期的记录

发布时间: 2012-04-02 19:58:59 作者: rapoo

如何同时取出最小日期和最大日期的记录?
TAB1

BH SH RQ
231 A1 2011-01-10
231 A1 2011-02-16
231 A1 2011-05-20
365 B1 2011-01-11
365 B1 2011-03-12
365 B1 2011-06-08
365 B1 2011-08-09
。。。

说明:在BH、SH相同的情况下,只取日期最小和最大得记录

想要的结果

BH SH RQ
231 A1 2011-01-10
231 A1 2011-05-20
365 B1 2011-01-11
365 B1 2011-08-09

请高手帮忙,谢谢!

[解决办法]
按日期排序 取第一个,在反着排序,取第一个,合并
[解决办法]

SQL code
SELECT * FROM TAB1 AWHERE NOT EXISTS (SELECT 1FROM TAB1WHERE BH= A.BHAND SH = A.SHAND RQ > A.RQ)OR NOT EXISTS (SELECT 1FROM TAB1WHERE BH= A.BHAND SH = A.SHAND RQ < A.RQ)
[解决办法]


select * from tablename a where date =(select min(date) from tablename b where a.id=b.id) or date= (select max(date) c where a.id=c.id)
更正一下
[解决办法]
SQL code
if object_id('t','U') is not null drop table tgocreate table t(    BH varchar(10),    SH varchar(10),    RQ datetime)  goinsert into tselect '231' as BH,'A1' as SH,'2011-01-10' as RQ union all     select '231','A1','2011-02-16' union all     select '231','A1','2011-05-20' union all     select '365','B1','2011-01-11' union all     select '365','B1','2011-03-12' union all     select '365','B1','2011-06-08' union all     select '365','B1','2011-08-09'goselect * from tgoselect     BH,    SH,    MIN(RQ) as date_RQFrom t    group by BH,SH      union all select     BH,    SH,    Max(RQ)From t    group by BH,SH --231    A1    2011-01-10 00:00:00.000--365    B1    2011-01-11 00:00:00.000--231    A1    2011-05-20 00:00:00.000--365    B1    2011-08-09 00:00:00.000 

读书人网 >SQL Server

热点推荐