Foxtable(狐表)用户栏目专家坐堂 → [求助]关于SQL统计空值


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

主题:[求助]关于SQL统计空值

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


加好友 发短信
等级:幼狐 帖子:114 积分:984 威望:0 精华:0 注册:2015/11/16 12:46:00
[求助]关于SQL统计空值  发帖心情 Post By:2016/4/15 16:51:00 [只看该作者]

Dim Sum As Single= DataTables("入库明细表").SQLCompute("Sum(入库重量)", "[品名] = '" & R("品名") & "' and [批号] = '" & R("批号") & "'  And [日期]= '"& txt & "' and [确认出入库]=1") 

老师好,请教下,SQL统计的话。如果 "[品名] = '" & R("品名") & "' and [批号] = '" & R("批号") & "'  其中有一列是空的话,为什么就统计不出来了。
是因为SQL的空值和 FOXtable 的空值不是同一类型吗?

该如何解决呢?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/15 16:59:00 [只看该作者]

Dim filter As String = "1=1"
If r.isnull("品名") = False Then
    filter &= " and 品名 = '" & R("品名") & "'"
End If
If r.isnull("批号") = False Then
    filter &= " and 批号 = '" & R("批号") & "'"
End If
msgbox(filter)
Dim Sum As Single= DataTables("入库明细表").SQLCompute("Sum(入库重量)", filter)

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


加好友 发短信
等级:幼狐 帖子:114 积分:984 威望:0 精华:0 注册:2015/11/16 12:46:00
  发帖心情 Post By:2016/4/15 17:02:00 [只看该作者]

 请教下 filter &= 是什么意思呢?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/15 17:03:00 [只看该作者]

 就是 filter = filter & "123456"

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


加好友 发短信
等级:幼狐 帖子:114 积分:984 威望:0 精华:0 注册:2015/11/16 12:46:00
  发帖心情 Post By:2016/4/15 17:04:00 [只看该作者]

好的。,谢谢老师!!

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


加好友 发短信
等级:幼狐 帖子:114 积分:984 威望:0 精华:0 注册:2015/11/16 12:46:00
  发帖心情 Post By:2016/4/15 17:25:00 [只看该作者]

…………老师好。。又来麻烦你了……我后面还有条件 And [日期]= '"& txt & "' and [确认出入库]=1"   是会变化的。如何将 “filter  And [日期]= '"& txt & "' and [确认出入库]=1" 套用起来呢?
   filter  And [日期]= '"& txt & "' and [确认出入库]=1"  说是AND后面非 布尔型 。。
如果重新定义 filter 的话。。这样代码会不会太繁琐重复了?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/15 17:56:00 [只看该作者]

Dim filter As String = "1=1"
If r.isnull("品名") = False Then
    filter &= " and 品名 = '" & R("品名") & "'"
End If
If r.isnull("批号") = False Then
    filter &= " and 批号 = '" & R("批号") & "'"
End If
filter = filter & " And [日期]= '" & txt & "' and [确认出入库]=1"
msgbox(filter)
Dim Sum As Single= DataTables("入库明细表").SQLCompute("Sum(入库重量)", filter)

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


加好友 发短信
等级:幼狐 帖子:114 积分:984 威望:0 精华:0 注册:2015/11/16 12:46:00
  发帖心情 Post By:2016/4/15 17:57:00 [只看该作者]

明白了。谢谢老师!学习了新的东西~

 回到顶部