以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何根据两个表数据进行条件求和后并相除? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12844) |
||||
-- 作者:风也劲 -- 发布时间:2011/9/17 14:31:00 -- 如何根据两个表数据进行条件求和后并相除? 根据“投入产出”与“成本费用”两表来设计: 1.如何设计求出2010年“吨料费用”?(即:2010年费用(求和)/1102投入总用量(吨)(求和) 2.求2011年6月的费用大项中“制造费用”的吨料费用?
[此贴子已经被作者于2011-9-17 14:39:57编辑过]
|
||||
-- 作者:don -- 发布时间:2011/9/17 14:41:00 -- Compute 根据指定的表达式和条件进行计算,语法: Compute(Expression, Filter) 语法: Compute(Expression, Filter) Expression: 要计算的表达式,使用聚合函数进行统计。 例如,我们要统计订单表中产品PD01的销售金额,代码如下: Dim Sum As
Double 还记得吗?
DataTable也有Compute方法,两者功能一样,但是DataTable的Compute方法统计所有行,而Table的Compute方法只会统计Table中可见的行。 例如你在订单表中筛选出了客户CS01的所有行,那么: Dim Sum1 As Double = Tables("订单").Compute("Sum(数量)") Sum1将等于客户CS01的订购数量,而Sum2将等于所有客户的订购数量。 同样: Dim Sum1 As Double = Tables("订单").Compute("Sum(数量)", "产品 =
\'PD01\'") Sum1将等于客户CS01订购产品PD01的数量,Sum2将等于所有客户订购产品PD01的数量。 |
||||
-- 作者:风也劲 -- 发布时间:2011/9/17 15:53:00 -- 麻烦帮忙设置下? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/9/18 9:45:00 -- 我没有看懂楼主的问题。 |
||||
-- 作者:风也劲 -- 发布时间:2011/9/18 11:11:00 -- 例如:我想求2010年度的平均一吨料的“制造费用”,就是用2010年总 ”制造费用” 除以2010年 “总投入量”,即用“成本费用”表中“制造费用”(条件:[费用大项]=\'制造费用\' and 年=2010),除以”投入产出“表中”项目“列”1102投入总用量(吨)“(条件:[项目]=‘1102投入总用量(吨)’,日期是2010年)。要达到目的:能统计每一项目每一时间段的吨料费用。 |
||||
-- 作者:程兴刚 -- 发布时间:2011/9/18 11:23:00 -- 您的文件无法下载,看不到投入产出表相关列名称,请修改“数量”为您要统计的投入产出表的那一列的名称,大概这样:
Tables("成本费用").Compute("Sum(制造费用)", "费用大项 = \'制造费用\' and 年 = 2010")/Tables("投入产出").Compute("Sum(数量)", "项目 = \'1102投入总用量(吨)\' and 日期 > #2009-12-31# and 日期 < #2011-01-01#") |
||||
-- 作者:程兴刚 -- 发布时间:2011/9/18 11:25:00 -- 如果成本费用表的“年”列为字符型,则为这样:
Tables("成本费用").Compute("Sum(制造费用)", "费用大项 = \'制造费用\' and 年 = ‘2010’")/Tables("投入产出").Compute("Sum(数量)", "项目 = \'1102投入总用量(吨)\' and 日期 > #2009-12-31# and 日期 < #2011-01-01#") |
||||
-- 作者:风也劲 -- 发布时间:2011/9/18 12:58:00 -- 命令窗口输入如下,能显示6655.55614497875 Dim Sum1 As Double Dim Sum2 As Double Dim Sum3 As Double Sum1 = Tables("成本费用").Compute("Sum(金额)", "费用大项 = \'制造费用\' And 日期>=#2010-01-01# And 日期<#2011-01-01#") Sum2 = Tables("投入产出").Compute("Sum(数据)", "项目 = \'1102投入总用量(吨)\' And 日期>=#2010-01-01# And
日期<#2011-01-01#") Sum3=Sum1/Sum2 Output.Show(Sum3) |
||||
-- 作者:风也劲 -- 发布时间:2011/9/18 12:59:00 -- 但在表达式列输入:Tables("成本费用").Compute("Sum(金额)", "费用大项 = \'制造费用\' And 日期>=#2010-01-01# And 日期<#2011-01-01#")/Tables("投入产出").Compute("Sum(数据)", "项目 = \'1102投入总用量(吨)\' And 日期>=#2010-01-01# And 日期<#2011-01-01#") 就出现错误提示:表达式错误,如果确认表达式无语法错误。。。。。 [此贴子已经被作者于2011-9-18 13:07:27编辑过]
|
||||
-- 作者:程兴刚 -- 发布时间:2011/9/18 13:19:00 -- 表达式列只能用表达式,不能直接用代码,请细看帮助! |