Foxtable(狐表)用户栏目专家坐堂 → 请问如何在SQL语句中直接调用 GroupTableBuilder产生的临时表?


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

主题:请问如何在SQL语句中直接调用 GroupTableBuilder产生的临时表?

帅哥哟,离线,有人找我吗?
蓝色理想
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
请问如何在SQL语句中直接调用 GroupTableBuilder产生的临时表?  发帖心情 Post By:2014/7/3 14:29:00 [只看该作者]

如题,请高手指点

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


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

不明白你的意思, 你是说自己编写SQL语句达到GroupTableBuilder的效果吗?

 回到顶部
帅哥哟,离线,有人找我吗?
蓝色理想
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/7/3 14:44:00 [只看该作者]

我的意思是,用 GroupTableBuilder 生成了一个临时表
我想用 sql 语句把  一个表  和 这个 GroupTableBuilder生成的临时表  进行连接

实体表 可以用 from  tableA 取得数据
那 GroupTableBuilder生成的临时表,该如何from 呢?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/3 14:46:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
蓝色理想
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/7/3 15:45:00 [只看该作者]

打开CaseStudy目录下的文件“组合结果.Table”,然后在命令窗口执行执行下面的代码:

Dim bd1 As New GroupTableBuilder("1",DataTables("进货单"))
Dim
 dt1 As fxDataSource
bd1
.Groups.AddDef("型号"'根据型号分组
bd1
.Totals.AddDef("数量","进货_数量"'对数量进行
bd1
.Totals.AddDef("金额","进货_金额"'对金额进行
dt1
 = bd1.BuildDataSource() 


我想在代码中

通过 sql 的  select 语句,调用上面生成的表

如何弄?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/3 15:48:00 [只看该作者]

 不能直接调用。如果你要写sql语句,你必须先用sql语句得出上面的表。

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


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

select 型号,sum(数量) as 进货_数量,sum(单价*数量) as 进货_金额 from {进货单} group by 型号

 回到顶部
帅哥哟,离线,有人找我吗?
蓝色理想
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/7/3 16:12:00 [只看该作者]

谢谢版主指点

 回到顶部
帅哥哟,离线,有人找我吗?
蓝色理想
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/7/3 16:14:00 [只看该作者]

其实我不只是需要简单分组,还想引用交叉统计的临时表

 我看了狐狸爸爸的帮助中这样写


显示生成的表


以下所有的类型,都有一个Build方法

GroupTableBuilder
CrossTableBuilder
SQLGroupTableBuilder
SQLCrossTableBuilder
DataTableBuilder
SQLJoinTableBuilder

执行这些类型的Build方法,将生成一个临时表(包括DataTable和Table), 有的用于显示统计结果,有的用于显示查询结果,有的只是一个空白表。
在一些特殊的场合,可能只想在代码中使用这个临时表,而并不希望显示它。

Build方法有一个可选的逻辑参数,如果设置为True,将只生成一个DataTable,这个Datatable只能在代码中使用,而且代码运行结束后,会自动销毁。
由于没有生成Table,所以这个临时表并不会在界面中。

示例

Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
Dim 
t As DataTable
Dim 
s As Double
b
.Groups.AddDef("产品")
b.Totals.AddDef(
"数量")
t = b.Build(
True'生成一个DataTable
For Each r As DataRow In t.DataRows
    Select
 Case r("产品"
)
        Case
 "PD01",
"PD02"
            s = s + r(
"数量")
        Case
 
Else
            s = s + r(
"数量") / 100
    
End Select
Next

Output.Show(s)

上述代码执行结束后,所生成的DataTable将自动销毁。


 回到顶部
帅哥哟,离线,有人找我吗?
蓝色理想
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4284 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/7/3 16:15:00 [只看该作者]

是不是可以用SQL语句    Select * from t

 回到顶部
总数 18 1 2 下一页