Foxtable(狐表)用户栏目专家坐堂 → [求助]SQL与统计的结合应用


  共有3763人关注过本帖树形打印复制链接

主题:[求助]SQL与统计的结合应用

帅哥哟,离线,有人找我吗?
don
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2015/5/23 15:59:00 [只看该作者]

Dim sql,sql2 As String 
Dim jb As New SQLJoinTableBuilder("销量统计","TbConFMD")
'jb.C
jb.AddTable("TbConFMD","ConFMID","TbConFM","ID")
jb.AddTable("TbConFM","ConID","TbCon","ID")
jb.AddTable("TbConFMD","WLID","TbWL","ID")
jb.AddCols("{TbWL}.ID","ICA","{TbCon}.ID","ApplyPeriod","ReplyA","{TbWL}.WLID")
sql = jb.BuildSQL


SQL2 ="Select A.*,b.RBSDID, b.UA F" & "rom(" & sql & ") a INNER JOIN {TbWLRBSD} b ON a.WLID = b.WLID"
'Output.Show(sql2)
Dim q As new QueryBuilder
q.TableName = "销量统计"
'q.C
q.SelectString = sql2

q.Build
MainTable = Tables("销量统计")

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/5/23 16:48:00 [只看该作者]

再请教。如果是外部数据源,还要引用全局变量(比如说要通过proID = "全局变量A“ ),以便检索过滤数据,在查询表中是否能引用全局变量呢?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/23 16:49:00 [只看该作者]

不可以哦. 你要用代码拼接SQL语句 生成临时表

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/5/23 17:02:00 [只看该作者]

你也可以直接在access数据库增加一个视图,使用同样的select语句。

 

然后在foxtable定义查询表:

 

Select * Fro m {视图}

 

这样以后进行条件加载也方便,可以直接:

 

Select * Fro m  {视图} whe re 某列 = 某值


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/5/23 17:39:00 [只看该作者]

狐爸威武,这个方法不错,还可以直接用ACCESS的SQL生成器。
只是有个疑问:
如果用外部数据源,当共享数据库的源表数据发生变化,在ACCESS中增加的查询表会不会自动更新,这个还没测试。
-----试了一下,貌似共享数据库的查询会自动更新啊。

[此贴子已经被作者于2015/5/23 18:17:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/6/6 20:37:00 [只看该作者]

再请教狐爸。
在ACCESS中生成查询表,行数可能会相当多。比如两个表来并联查询,可能行数就成了表A行数*表B行数那么多,如果再加一个C表,可能就更多了----而且,ACCESS的表数据行数太多了之后,貌似效率上会降低得很快。

是不是这样意味着从服务端传输到客户端的数据量也会很多。

如果在客户端写SQL,然后在客户端运算,哪种的效率会更高一些?毕竟对于用户来讲,数据生成的速度越快越好。
[此贴子已经被作者于2015/6/6 20:41:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/6/6 20:59:00 [只看该作者]

行数很多没办法,但是你可以分页加载,数据多,建议采用SQL Server.
注意性能,你可以自己测试一下。

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/6/6 22:02:00 [只看该作者]

如果在客户端使用SQLJoinTableBuilder,它的行数多会不会有影响?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/7 10:06:00 [只看该作者]

以下是引用chnfo在2015/6/6 22:02:00的发言:
如果在客户端使用SQLJoinTableBuilder,它的行数多会不会有影响?

 

行数取决于你的数据以及你的查询,连接查询,即便多行效率也是很高的。


 回到顶部
总数 19 上一页 1 2