Foxtable(狐表)用户栏目专家坐堂 → SQL后台统计问题


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

主题:SQL后台统计问题

帅哥,在线噢!
L88919138
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
SQL后台统计问题  发帖心情 Post By:2014/4/2 7:55:00 [只看该作者]

设置如下代码,经实验发现如运杂费列里未输入任何数据,其他列有数据,这样后台无法统计符合条件的数据,求大师们指教应如何改进代码?

 

Dim cmd As new SQLCommand

cmd.c

For Each dr As DataRow In DataTables("存货设置表").DataRows

    cmd.CommandText = "Select sum(出仓数量 * 含税单价) - sum(运杂费) - sum(收款金额) - sum(长短款)  - sum(返利)   From {销售收款统计表}  Where 客户名称 = '" & dr("客户名称") & "' and 对账日期 is not null and 合同录入日期 <= '" & User.ExtendedValues("结束日期") & "'"

    If cmd.CommandText IsNot Nothing

        dr("销售表金额") = cmd.executescalar

    Else

        dr("销售表金额") = 0

    End If

Next


 回到顶部
帅哥,在线噢!
L88919138
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2014/4/2 7:58:00 [只看该作者]

补充,只有上述各列中至少有一个数字,才会将符合条件的数据统计出来。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/2 8:24:00 [只看该作者]

因为10-空 得空 在SQL中是这样的.

1.简便的方法,不允许为空.空值你填写0,或者设置默认值为0

2.修改SQL语句  例如  (case sum(运杂费) when sum(运杂费) is null then 0 else then sum(运杂费) end)- (case sum(收款金额) when sum(收款金额) is null then 0 else then sum(收款金额))

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


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

 用isnull函数,例如

 

isnull(sum(运杂费), 0)


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/2 9:02:00 [只看该作者]

以下是引用有点甜在2014-4-2 9:01:00的发言:

 用isnull函数,例如

 

isnull(sum(运杂费), 0)

赞一个,这么好的东西不拿出来用,记错成ACCESS的了.

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


加好友 发短信
等级:婴狐 帖子:38 积分:351 威望:0 精华:0 注册:2014/3/27 10:00:00
  发帖心情 Post By:2014/4/2 9:49:00 [只看该作者]

应该是sum(isnull(运杂费,0))


 回到顶部
帅哥,在线噢!
L88919138
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:724 积分:6913 威望:0 精华:0 注册:2012/3/1 7:20:00
  发帖心情 Post By:2014/4/2 11:14:00 [只看该作者]

多谢两位大师指点,忘记isnull函数使用。

 回到顶部