日期:2014-05-18 浏览次数:20505 次
F1 F2 F3 2010-01-23 00:00:00 128525 3380.0 2010-01-23 00:00:00 128526 3381.0 2010-01-23 00:00:00 128529 3384.0 2010-01-25 00:00:00 128530 3383.0 2010-01-25 00:00:00 128531 3382.0 2010-01-25 00:00:00 128534 3379.0 2010-03-04 00:00:00 128535 3378.0 2010-03-04 00:00:00 128536 3377.0 2010-03-04 00:00:00 128539 3374.0 2010-03-25 00:00:00 128540 3373.0 2010-03-25 00:00:00 128541 3372.0 2010-03-25 00:00:00 128542 3371.0 2010-03-25 00:00:00 128565 3372.0 2010-03-25 00:00:00 128566 3373.0
2010-01-23 00:00:00 128529 3384.0 2010-01-25 00:00:00 128534 3379.0 2010-03-04 00:00:00 128539 3374.0 2010-03-25 00:00:00 128566 3373.0
select * from tb t where F2=(select max(F2) from tb where f1=t.f1)
------解决方案--------------------
select f1, max(f2),max(f3) from tab group by f1
------解决方案--------------------
if object_id('[tb]') is not null drop table [tb]
go
create table [tb] (F1 datetime,F2 int,F3 numeric(5,1))
insert into [tb]
select '2010-01-23 00:00:00',128525,3380.0 union all
select '2010-01-23 00:00:00',128526,3381.0 union all
select '2010-01-23 00:00:00',128529,3384.0 union all
select '2010-01-25 00:00:00',128530,3383.0 union all
select '2010-01-25 00:00:00',128531,3382.0 union all
select '2010-01-25 00:00:00',128534,3379.0 union all
select '2010-03-04 00:00:00',128535,3378.0 union all
select '2010-03-04 00:00:00',128536,3377.0 union all
select '2010-03-04 00:00:00',128539,3374.0 union all
select '2010-03-25 00:00:00',128540,3373.0 union all
select '2010-03-25 00:00:00',128541,3372.0 union all
select '2010-03-25 00:00:00',128542,3371.0 union all
select '2010-03-25 00:00:00',128565,3372.0 union all
select '2010-03-25 00:00:00',128566,3373.0
select *
from tb t
where F2=(select max(F2) from tb where f1=t.f1)
/*
F1 F2 F3
----------------------- ----------- ---------------------------------------
2010-03-25 00:00:00.000 128566 3373.0
2010-03-04 00:00:00.000 128539 3374.0
2010-01-25 00:00:00.000 128534 3379.0
2010-01-23 00:00:00.000 128529 3384.0
*/
------解决方案--------------------
SELECT * FROM TB T WHERE F2=(SELECT MAX(F2) FROM TB WHERE DATEDIFF(DD,F1,T.F1)=0)
------解决方案--------------------
select * from tb t where not exsits(select 1 from tb where f1=t.f1 and F3>t.F3)
------解决方案--------------------
--处理表重复记录(查询和删除)
/******************************************************************************************************************************************************
1、Num、Name相同的重复值记录,没有大小关系只保留一条
2、Name相同,ID有大小关系时,保留大或小其中一个记录
整理人:中国风(Roy)
日期:2008.06.06
******************************************************************************************************************************************************/
--1、用于查询重复处理记录(如果列没有大小关系时2000用生成自增列和临时表处理,SQL2005用row_number函数处理)
--> --> (Roy)生成測試數據
if not object_id('Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N