Foxtable(狐表)用户栏目专家坐堂 → [求助]关于查询与统计的求助-20:05上传的例子


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

主题:[求助]关于查询与统计的求助-20:05上传的例子

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]关于查询与统计的求助-20:05上传的例子  发帖心情 Post By:2016/9/12 11:12:00 [只看该作者]

在窗口中的TABLE表,我先通过代码:
Tables(e.Form.Name & "_Table1").Fill("s elect 卷号,牌号,厚度,宽度,重量 ...... from {工序合并表} ......
If DataTables(e.Form.Name & "_Table1").datacols.Contains("长度") Then
Else
    DataTables(e.Form.Name & "_Table1").DataCols.Add("长度", Gettype(Double))
End If
For Each r As Row In Tables(e.Form.Name & "_table1").Rows
    Dim dr密度 As DataRow
    dr密度 = _dt密度表.SQLFind("牌号 = '" &  r("牌号") & "'" )
    If dr密度 IsNot Nothing  Then
        r("长度") = r("重量")/r("厚度")/r("宽度")/dr密度("密度")*1000 ‘根据密度、厚度、宽度算出长度的公式
    Else r("长度") = Nothing
    End If
Next
上述代码就生成了如下结构的表:
卷号 牌号 厚度 宽度 重量 长度
卷1 牌号A 0.1  100  200 1000
卷2 牌号A 0.1  200  200 500
卷3 牌号B 0.1  300  500 300

现在希望得到一张既汇总又能计算长度的表,如下:
牌号 长度
牌号A 1500
牌号B 300
请教老师应该如何写s elect语句,由于长度这个字段是根据每个卷的密度、厚度、宽度实时增加及计算的,所以不会写了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


[此贴子已经被作者于2016/9/12 20:06:02编辑过]

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/12 11:43:00 [只看该作者]

关联多个表并使用表达式列,参考http://www.foxtable.com/webhelp/scr/1626.htm

具体上例子测试

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2016/9/12 20:09:00 [只看该作者]

我在1楼上传了例子,请老师看看。

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/12 20:35:00 [只看该作者]

Dim b As New SQLGroupTableBuilder("统计表1","工序合并表")

b.AddTable("工序合并表","牌号","密度表","牌号") '添加统计表
b.Groups.AddDef("工序") '根据订单表产品ID分组
b.Totals.AddExp("金额","重量 / 厚度 / 宽度 / 密度 * 1000")
e.Form.Controls("Table1").Table.datasource = b.BuildDataSource

 回到顶部