求平均分问题
表1 
 ID               数学   英文   语文            学生编号 
 1   80    80                           65    1 
 2   60    80                           42    1 
 3   80                        80                           94    1 
 4   90                        80                           54    2   
 表2 
 编号     名字 
 1        张三 
 2   李四   
 我想求出张三每项的平均分来   
 得出   
 张三  数学平均   英文平均   语文平均   
 谁能教下。谢谢了
------解决方案--------------------create table t1(id int,math int,english int,chinese int,num int) 
 insert into t1 
 select 1,80,80,65,1 union all 
 select 2,60,80,42,1 union all 
 select 3,80,80,94,1 union all 
 select 4,90,80,54,2    
 create table t2(num int,name varchar(10)) 
 insert into t2 
 select 1, 'zhang3 ' union all 
 select 2, 'li4 '   
 select name,avg(math) as math,avg(english) as english,avg(chinese) as chinese 
 from t1 inner join t2 on t1.num=t2.num 
 where name= 'zhang3 ' --不加條件取所有人的平均分 
 group by name   
 /* 
 name       math        english     chinese      
 ---------- ----------- ----------- -----------  
 zhang3     73          80          67 
 */ 
 drop table t1,t2
------解决方案--------------------if object_id( 'pubs..表1 ') is not null 
    drop table 表1 
 go   
 create table 表1(ID int,数学 int,英文 int,语文 int,学生编号 int) 
 insert into 表1(ID,数学,英文,语文,学生编号) values(1,80,80,65,1) 
 insert into 表1(ID,数学,英文,语文,学生编号) values(2,60,80,42,1) 
 insert into 表1(ID,数学,英文,语文,学生编号) values(3,80,80,94,1) 
 insert into 表1(ID,数学,英文,语文,学生编号) values(4,90,80,54,2)   
 if object_id( 'pubs..表2 ') is not null 
    drop table 表2 
 go   
 create table 表2(编号 int,名字 varchar(10)) 
 insert into 表2(编号,名字) values(1, '张三 ') 
 insert into 表2(编号,名字) values(2, '李四 ')   
 select 表2.名字 , isnull(数学平均分,0) 数学平均分 , isnull(英文平均分,0) 英文平均分 , isnull(语文平均分 , 0) 语文平均分 from 表2 
 left join 
 ( 
   select 学生编号,cast(avg(数学) as decimal(18,2)) as 数学平均分 , cast(avg(英文) as decimal(18,2)) as 英文平均分 , cast(avg(语文) as decimal(18,2)) as 语文平均分 from 表1 group by 学生编号 
 ) t 
 on 表2.编号 = t.学生编号   
 drop table 表1,表2   
 /* 
 名字         数学平均分           英文平均分           语文平均分                 
 ---------- -------------------- -------------------- --------------------  
 张三         73.00                80.00                67.00 
 李四         90.00                80.00                54.00   
 (所影响的行数为 2 行)   
 */
------解决方案--------------------上面两个答案都是对的,关键是两个表要按学生编号进行连接,可以是左连,也可以是内连,与id不断增长无关系,楼主看看语法吧. 
 inner join  
 left join