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

在找分组后最大一组的值时,怎么将临时表换成子查询

2012-01-24 
在找分组后最大一组的值时,如何将临时表换成子查询?/*createtableDays(DayIdintidentity(1,1)primarykey,D

在找分组后最大一组的值时,如何将临时表换成子查询?
/*

create   table   Days
(
DayId   int   identity(1,   1)   primary   key,  
DayCount   int,  
DayWeek   int  
)

insert   Days(DayCount,   DayWeek)  
select   1,   1   union   all  
select   2,   1   union   all  
select   3,   1   union   all  
select   4,   1   union   all  
select   5,   1   union   all  
select   6,   1   union   all  
select   7,   1   union   all  
select   8,   1   union   all  
select   9,   1   union   all  
select   10,   1   union   all  
select   11,   1   union   all  
select   12,   1   union   all  
select   13,   2   union   all  
select   14,   2   union   all  
select   14,   3   union   all  
select   14,   3   union   all  
select   14,   3   union   all  
select   14,   4   union   all  
select   14,   4   union   all  
select   14,   4

*/

select   DayWeek,   sum(DayCount)   as   DayCount   into   #temp   from   Days   where   DayWeek   >   1   group   by   DayWeek

select   *   from   #temp

/*

DayWeekDayCount
227
342
442

*/

select   top   1   *   from  
(select   a.DayWeek,   a.DayCount   from   #temp   a   inner   join  
(select   max(DayCount)   as   DayCount   from   #temp)   b   on   a.DayCount   =   b.DayCount)   aa   order   by   aa.DayWeek

/*

DayWeekDayCount
342

*/


/*

drop   table   Days

*/

[解决办法]
用第二句的
[解决办法]
select top 1 DayWeek,DayCount as DayCount from
(
select top 100 percent DayWeek, sum(DayCount) as DayCount from Days where DayWeek > 1 group by DayWeek order by DayCount desc
)a

热点排行