首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-04-02 
如何同时取出最小日期和最大日期的记录?TAB1BHSHRQ231A12011-01-10231A12011-02-16231A12011-05-20365B120

如何同时取出最小日期和最大日期的记录?
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 

热点排行