declare @ssql nvarchar(4000)
declare @name varchar(100)
declare @tReturn table(name varchar(100),num int)
declare @i int,@count int,@num int
declare @t table(i int,name varchar(100))
insert into @t(name) select name from dbosysobjects where type = 'U'
set @i=0
update @t set i=@i,@i=@i+1
select @count=count() from @t
set @i=1
while @i<=@count
begin
select @name=name from @t where i=@i
set @ssql= N'select @num=count() from '+@name
exec sp_executesql @ssql,N'@num int out',@num out
insert into @tReturn values(@name,@num)
select @i=@i+1
end
select from @tReturn order by num
--在sql数据库后台运行
select from A inner join B on (AId=BAid) where Aage<16 and B所选课程=数学
(AId=BAid)是A表和B表的关系
Sql语句是这样的
个人感觉下面这个应该差不多,你问题是sum这个值sql并不知道要怎么去统计,所以就没办法更新。
update A,(select 部门名称 sum(金额) as 汇总金额 from B) as C set A金额=C汇总金额 where A 部门名称=C 部门名称
(1) 数据库中的不同的表一般对应不同的实体,不同的实体具有不同的属性,如果将所有的表都汇总成一张表,则需要将所有的属性都集合在一起,不管哪个实体有没有,然后在没有此属性的实体赋值时,赋值为空,这严重浪费了磁盘的空间吧。
(2)数据库中每张表都存储一定的记录,若将所有的记录都汇总成一张表,你查询的时候,速度将会非常慢,数据库查询的时候,你给它表名,它根据表名找到此表,然后一条一条的查询记录,但若都集中的一张表中,那此表的记录将时原来分开表中记录的n多倍,那得查询多少时间啊??
试一下如下代码:
Private Sub Command1_Click()
Dim ADOrs As New Recordset
Dim ADOcn As New ADODBConnection
Dim Yourt As New ADODBRecordset
Dim Mystr As String
ADOcnOpen "Provider=MicrosoftJetOLEDB40;Persist Security Info=False;Data Source=d:\db1mdb" '修改成自己的文件路径及名称
Print "表名", "记录数"
Set ADOrs = ADOcnOpenSchema(adSchemaTables)
Do Until ADOrsEOF
If ADOrs("Table_type") = "TABLE" And Left(ADOrs("Table_name"), 7) <> "~TMPCLP" Then
Mystr = "select from " & ADOrs!table_name
YourtOpen Mystr, ADOcn, 3, 1
Print ADOrs!table_name, str(YourtRecordCount)
ADOrsMoveNext
YourtClose
Set Yourt = Nothing
Else
ADOrsMoveNext
End If
Loop
End Sub
以上就是关于我想把数据库中所有的表,每个有多少条数据全部统计出来全部的内容,包括:我想把数据库中所有的表,每个有多少条数据全部统计出来、sql数据库中多表如何统计总数、数据库A,B两张表 A表为汇总表,B为明细表,从B表中取合计值 数据更新到A表,SQL语句 怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)