当前位置:编程学习 > C#/ASP.NET >>

数据库分类返回最大记录问题

我的要从一个数据库A中查找出没类的最大记录行,如  
 NAME     NUM    TIME
 LILI     6        2008
 LILI     5       2009
 LILI     6       2010
 HUHU     7        2008
HUHU      8       2009
HUHU      4        2010

我要把每个人的最大行记录取出来 
 LILI    6  2008   
 HUHU    8  2009

这个怎么做呢

如果我还需要查询出NUM大于 4的记录呢
NAME   NUM   COUNT
LILI   6     3
HUHU   8     2  
请哪位高手指导下   --------------------编程问答-------------------- 1、 select top 1 * from table order by NUM desc

2、 select * from table where NUM>4  --------------------编程问答-------------------- 第一个错了************* --------------------编程问答-------------------- 关注第一个!似乎要用max()  group by 之类的,忘了 --------------------编程问答-------------------- try

select * from table as a where not exists (select * from table where a.NAME=NAME and NUM> a.NUM) --------------------编程问答-------------------- 有可能一样的,再加上一个top 1 --------------------编程问答--------------------

declare @table table ([NAME] varchar(10),[NUM] int,[TIME] int)
insert into @table select 'LILI' ,6,2008
insert into @table select 'LILI' ,5,2009
insert into @table select 'LILI' ,6,2010
insert into @table select 'HUHU' ,7,2008
insert into @table select 'HUHU' ,8,2009
insert into @table select 'HUHU' ,4,2010


select [NAME],max([NUM]) as [NUM],max([TIME]) as [TIME] from @table
group by [NAME]

select
 [NAME],
 max([NUM]) as [NUM],
'COUNT'=count([NUM])
from @table
where [NUM]>4
group by [NAME]
----------------
NAME    NUM     TIME
HUHU 8 2010
LILI 6 2010

----------------
NAME    NUM     COUNT
HUHU 8 2
LILI 6 3





--------------------编程问答-------------------- 查询语句最好少用top 1这样的查询。数据量一大你的查询将会十分的慢 --------------------编程问答-------------------- 1. select max(*) from Table group by Name
2. select max(*) from Table where NUM>4 froup by Name
试一下 没测试 --------------------编程问答-------------------- 1. select max(*) as count from Table group by Name
2. select max(*) as count from Table where NUM>4 group by Name
试一下 没测试 --------------------编程问答-------------------- 大家好象没完全理解我的意思,我是要把最大行的所有内容给取出来啊 --------------------编程问答-------------------- 为什么我用select * from table as a where not exists (select * from table where a.NAME=NAME and NUM> a.NUM)
一个返回的是最大行记录,一个返回的是最小行记录呢? --------------------编程问答-------------------- 6L 已经给出你想要的答案了,要不就是你没有描述清楚  --------------------编程问答--------------------
引用 12 楼 milo4210 的回复:
6L 已经给出你想要的答案了,要不就是你没有描述清楚
--------------------编程问答-------------------- 楼主  你还不揭帖啊? --------------------编程问答--------------------
引用 6 楼 xiaoniao_28 的回复:
SQL code
declare @table table ([NAME] varchar(10),[NUM] int,[TIME] int)
insert into @table select 'LILI' ,6,2008
insert into @table select 'LILI' ,5,2009
insert into @table select 'LILI' ,6,2010
insert into @table select 'HUHU' ,7,2008
insert into @table select 'HUHU' ,8,2009
insert into @table select 'HUHU' ,4,2010


select [NAME],max([NUM]) as [NUM],max([TIME]) as [TIME] from @table


哈,还真不错的人
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,