以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 已加载表中计算有空值时sum出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102433) |
-- 作者:HappyFt -- 发布时间:2017/6/19 21:23:00 -- 已加载表中计算有空值时sum出错 有如下的代码,在加载的表中用compute求和 dr("累计生产") = e.DataTable.Compute("isnull(Sum(合格数量),0) + isnull(Sum(不良数量),0) + isnull(Sum(报废数量),0)","生产单号 = \'" & e.DataRow("生产单号") & "\' and 产品编码 = \'" & e.DataRow("产品编码") & "\' and 工序号 = " & e.DataRow("工序号")) 上面如果不加isnull的话,合格数量,不良数量,报废数量 三列中有一列值为空时就不会计算,sum(isnull(合格数量),0))也会提示出错, 这种情况compute时sum求和时如果为空就按0计算要怎么写才可以? 谢谢!
|
-- 作者:有点蓝 -- 发布时间:2017/6/19 21:41:00 -- e.DataTable.sqlCompute("isnull(Sum(合格数量),0) + isnull(Sum(不良数量),0) + isnull(Sum(报废数量),0)","生产单号 = \'" & e.DataRow("生产单号") & "\' and 产品编码 = \'" & e.DataRow("产品编码") & "\' and 工序号 = " & e.DataRow("工序号")) |
-- 作者:HappyFt -- 发布时间:2017/6/19 21:52:00 -- sqlcompute因为事先没有加载表结构不适合,项目的窗口都是sqltable fill数据进来的.另外因为合格数量,不良数量,报废数量是新增时没有填写值导致不计算,如果保存过一次的sql数据库中默认值是设为0的,就没有这个问题,是不是只能在窗口打开时设置一下默认值为0 类似这样Tables(e.Form.name & "_明细").Cols("合格数量").DataCol.DefaultValue = """0""" foxtable中前台数据计算时有没有如果没填写值就按0计算的写法?
|
-- 作者:有点蓝 -- 发布时间:2017/6/19 22:14:00 -- Dim filter As String = "生产单号 = \'" & e.DataRow("生产单号") & "\' and 产品编码 = \'" & e.DataRow("产品编码") & "\' and 工序号 = " & e.DataRow("工序号") Dim v = e.DataTable.sqlCompute("Sum(合格数量)",filter) + e.DataTable.sqlCompute("Sum(不良数量)",filter) + e.DataTable.sqlCompute("Sum(报废数量)",filter)
|