Foxtable(狐表)用户栏目专家坐堂 → SQL语句求助


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

主题:SQL语句求助

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


加好友 发短信
等级:三尾狐 帖子:754 积分:6991 威望:0 精华:1 注册:2008/9/2 20:04:00
SQL语句求助  发帖心情 Post By:2014/4/29 10:43:00 [只看该作者]

有一表A,字段为:客户,数量1,数量2;想使用SQLCommand语句,求出 Sum(数量1)-SUM(数量2 )

我写代码如下:

Dim cmd As New SQLCommand
Dim
dt As DataTable
cmd.CommandText = "SELECT DISTINCT 客户,数量1,数量2,数量1-数量2 As 余额 From {A}"
dt = cmd.ExecuteReader()

 

或者

Dim val As Integer
Dim cmd As New SQLCommand
cmd.CommandText = "Select 客户,Sum(数量1)-Sum(数量2)  From {A} "
val  = cmd.ExecuteScalar()

 

这两种代码运行后都不能计算出正确的余额(余额都为0)



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


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

请上例子 SQL的SUM默认是会过滤空值的吧

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


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

是不是你没有保存?

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


加好友 发短信
等级:三尾狐 帖子:754 积分:6991 威望:0 精华:1 注册:2008/9/2 20:04:00
  发帖心情 Post By:2014/4/29 10:57:00 [只看该作者]

保存了,但是可能有空值,数量1或数量2都有一方有空值,但是不会同时出现空值

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


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

空值也会计算的啊,你上个例子看看.

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


加好友 发短信
等级:三尾狐 帖子:754 积分:6991 威望:0 精华:1 注册:2008/9/2 20:04:00
  发帖心情 Post By:2014/4/29 11:03:00 [只看该作者]

点击按钮后,张三余额正确,李四余额不正确 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

[此贴子已经被作者于2014-4-29 11:19:03编辑过]

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


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

Select 客户,Sum(应收款)-Sum(应付款) as 款 From {表A} group by 客户

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


加好友 发短信
等级:三尾狐 帖子:754 积分:6991 威望:0 精华:1 注册:2008/9/2 20:04:00
  发帖心情 Post By:2014/4/29 15:52:00 [只看该作者]

搞定,代码如下

Select 客户,Sum(IIF(应收款 is Null ,0,应收款))-Sum(IIF(应付款 is Null,0,应付款)) as 款 From {表A} group by 客户


 回到顶部