欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一句Sql把縱向表轉(zhuǎn)為橫向表,并分別分組求平均和總平均值

 更新時(shí)間:2010年06月29日 09:04:19   作者:  
一句Sql把縱向表轉(zhuǎn)為橫向表,并分別分組求平均和總平均值,需要的朋友可以參考下。
效果如圖所示:

測(cè)試sql語(yǔ)句如下:
復(fù)制代碼 代碼如下:

declare @tab table(Class varchar(20),Student varchar(20),Course varchar(50),Quantity decimal(7,2));
insert into @tab(Class,Student,Course,Quantity) values('A班','張三','語(yǔ)文',60);
insert into @tab(Class,Student,Course,Quantity) values('A班','張三','數(shù)學(xué)',70);
insert into @tab(Class,Student,Course,Quantity) values('A班','張三','英語(yǔ)',80);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','語(yǔ)文',30);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','數(shù)學(xué)',40);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','英語(yǔ)',50);

insert into @tab(Class,Student,Course,Quantity) values('B班','王五','語(yǔ)文',65);
insert into @tab(Class,Student,Course,Quantity) values('B班','王五','數(shù)學(xué)',75);
insert into @tab(Class,Student,Course,Quantity) values('B班','王五','英語(yǔ)',85);
insert into @tab(Class,Student,Course,Quantity) values('B班','趙六','語(yǔ)文',35);
insert into @tab(Class,Student,Course,Quantity) values('B班','趙六','數(shù)學(xué)',45);
insert into @tab(Class,Student,Course,Quantity) values('B班','趙六','英語(yǔ)',55);



select * from @tab

select
(case when Grouping(Class)=1 then '總平均' when Grouping(Student)=1 then '' else Class end ) as Class
,(case when Grouping(Class)=1 then '' when Grouping(Student)=1 then '平均' else Student end) as Student
,avg(語(yǔ)文) as 語(yǔ)文
,avg(數(shù)學(xué)) as 數(shù)學(xué)
,avg(英語(yǔ)) as 英語(yǔ)
,avg(總分) as 總分
from (
select Class,Student
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='語(yǔ)文') as '語(yǔ)文'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='數(shù)學(xué)') as '數(shù)學(xué)'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='英語(yǔ)') as '英語(yǔ)'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student) as '總分'
from @tab as t
group by Class,Student
) as tempTab
group by Class,Student,語(yǔ)文,數(shù)學(xué),英語(yǔ),總分 with rollup
having Grouping(語(yǔ)文)=1
and Grouping(數(shù)學(xué))=1
and Grouping(英語(yǔ))=1

相關(guān)文章

最新評(píng)論