以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于查询与统计的求助-20:05上传的例子 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90412) |
||||
-- 作者:huangfanzi -- 发布时间:2016/9/12 11:12:00 -- [求助]关于查询与统计的求助-20:05上传的例子 在窗口中的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语句,由于长度这个字段是根据每个卷的密度、厚度、宽度实时增加及计算的,所以不会写了。
[此贴子已经被作者于2016/9/12 20:06:02编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/9/12 11:43:00 -- 关联多个表并使用表达式列,参考http://www.foxtable.com/webhelp/scr/1626.htm 具体上例子测试
|
||||
-- 作者:huangfanzi -- 发布时间:2016/9/12 20:09:00 -- 我在1楼上传了例子,请老师看看。 |
||||
-- 作者:有点蓝 -- 发布时间: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
|