Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表统计结果不对


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

主题:[求助]跨表统计结果不对

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
[求助]跨表统计结果不对  发帖心情 Post By:2018/10/22 13:58:00 [只看该作者]

老师,麻烦看看我跨表统计出来结果不对呢,怎么去看filter统计了那些值呢?

If e.DataCol.Name = "增收类别" Then
    If e.DataRow.IsNull("增收类别") Then
        e.DataRow("成本fa piao") = Nothing
        e.DataRow("可抵扣进项税额") = Nothing
    ElseIf e.DataRow("增收类别") = "标准增收" Then
        e.DataRow("应缴税额")=e.DataRow("开piao金额")/1.1*0.1
        e.DataRow("预缴税额")=e.DataRow("开piao金额")/1.1*0.02
    Dim filter1 As String = "合同编码='" & e.DataRow("合同编码") & "'and 计量期数='" & e.DataRow("计量期数") & "'"
        e.DataRow("成本fa piao") = DataTables("进项piao审核").sqlCompute("sum(税后金额)", filter1 & " And 审核状态='已审核'  and 类别 in ('普piao','专piao','人工工资')")
        e.DataRow("可抵扣进项税额") = DataTables("进项piao审核").sqlCompute("sum(税额)", filter1 & " And 审核状态='已审核' and 类别='专piao'")
    End If
End If

 

用filter,用sqlCompute统计出来和用Compute统计出来为什么不一样呢?

[此贴子已经被作者于2018/10/22 13:59:41编辑过]

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


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

1、sqlcompute统计的是保存了的数据,新增的、修改的数据不会统计;

 

2、compute统计的是加载到foxtable里面的全部的数据,在数据库但没有加载的不会统计;

 

3、你可以写sql语句查找数据 http://www.foxtable.com/webhelp/scr/1484.htm

 


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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/10/22 15:39:00 [只看该作者]

我试过,用了filter在用sqlCompute和用Compute结果不一样,我测试统计的数据都还有只有一条,用Compute结果是对的,用sqlCompute结果就不对,和filter有没关系呢?

Dim filter1 As String = "合同编码='" & e.DataRow("合同编码") & "'and 计量期数='" & e.DataRow("计量期数") & "'"

e.DataRow("成本fa piao") = DataTables("进项piao审核").sqlCompute("sum(税后金额)", filter1 & " And 审核状态='已审核'  and 类别 in ('普piao','专piao','人工工资')")


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


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

如果你合同编码是数值列、计量期数是数值列,就改成

 

Dim filter1 As String = "合同编码=" & e.DataRow("合同编码") & " and 计量期数=" & e.DataRow("计量期数") & ""


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


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

你可以写sql语句查找数据 http://www.foxtable.com/webhelp/scr/1484.htm

 回到顶部