会SQL的来帮一下忙啊~~~~~~~~~~

来源:百度知道 编辑:UC知道 时间:2024/05/19 02:42:18
一、有两个表,,表A:

学号 姓名 数学成绩 语文成绩
1 假 88 66
2 以 86 98
3 饼 65 21
4 钉 32 32
5 雾 18 80
6 几 65 87
7 庚 56 87
8 新 54 21

表B:
学号
1
2
5
8

什么语句能把表B变成:
学号 姓名 数学成绩 语文成绩
1 假 88 66
2 以 86 98
5 雾 18 80
8 新 54 21

二、
一个数据库里有100个表
什么语句能把这100个表的行数汇总到一个表里。

本人很笨,请详细写明~~~~~~~~~~~~~~~~

汇总可以用游标实现

declare @n varchar(50)
declare @s varchar(500)
declare cs1 cursor for
select name from sysobjects where xtype='u'
open cs1
fetch next from cs1 into @n
while @@FETCH_STATUS = 0
begin
set @s = 'declare @cnt int'
set @s = @s + ' select @cnt=count(1) from '+@n
set @s = @s + ' insert into newtable values('''+@n+''',@cnt)'
exec(@s)
fetch next from cs1 into @n
end
close cs1
deallocate cs1
select * from newtable

sql="insert into B(姓名,数学成绩,语文成绩) select 姓名,数学成绩,语文成绩 from A where B.学号=A.学号"