以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于关联表的计算问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160095) |
|
-- 作者:81538475 -- 发布时间:2021/1/20 9:23:00 -- [求助]关于关联表的计算问题 A表与B表使用编号 关联。 那么如果想计算B表中,数据类型不为C的数据的总和,用什么方法最快呢。我现在的方法就是记录A表中,数据类型不为C的编号,然后 用 sqlcomputer 去计算。但是这样的话,数据库的数据越多,这种方法就会变得非常慢了吧。 目前由于数据库的数据量就已经比较大了。 [此贴子已经被作者于2021/1/20 9:33:17编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2021/1/20 9:33:00 -- 如果是要一次性统计所有数据,使用sql,或者分组统计等工具。 如果是在边录入数据的时候,边统计,使用sqlcomputer应该没有什么问题 |
|
-- 作者:81538475 -- 发布时间:2021/1/20 9:41:00 -- 是边录入数据变计算的情况 Dim st As Date = Date.Now Dim ids As String For Each dr As DataRow In DataTables("xmzb").SQLSelect("关联单=\'已清算\'") ids = ids & ",\'" & dr("BH") & "\'" Next ids= ids.Trim(",") output.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") |
|
-- 作者:有点蓝 -- 发布时间:2021/1/20 9:49:00 -- DataTables("xmzb").sqlcomputer (“count(关联单)”,"关联单=\'已清算\'") |
|
-- 作者:81538475 -- 发布时间:2021/1/20 9:56:00 -- 我是要计算另外一个表的数值,不是计算这个表的关联单的数量呀。 我在三楼给的代码只是记录编号的时间完整的是这样 Dim ids As String For Each dr As DataRow In DataTables("xmzb").SQLSelect("关联单=\'已清算\'") ids = ids & ",\'" & dr("BH") & "\'" Next ids= ids.Trim(",")
就是想问下,有没有更快的计算方法。现在录入一个数字要等2-3秒,有点问题。
[此贴子已经被作者于2021/1/20 9:57:22编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2021/1/20 10:03:00 -- DataTables("另一个表").sqlcomputer (“sum(数据)”,"bh in (select bh from xmzb where 关联单=\'已清算\')") |
|
-- 作者:81538475 -- 发布时间:2021/1/20 10:09:00 -- 多谢多谢 |