sql sum求和,如果为空显示为0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql sum求和,如果为空显示为0相关的知识,希望对你有一定的参考价值。
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;';Data Source=" & ThisWorkbook.FullName
Sql2 = "select sum(isnull(实收保费),0) as bf from [Sheet2$] where 渠道名称<>'网上业务-专属产品渠道' and 最新渠道类型='传统直销业务' and 交强商业标志='交强' group by 最新业务归属人员 order by 最新业务归属人员"
Sheet1.[C4].CopyFromRecordset cnn.Execute(Sql2)
cnn.Close: Set cnn = Nothing
想让按where条件判断后,不存在这样的数据那条的sum显示为0,但是运行后报错显示:用于函数参数的个数不对,在查询表达式 sum(isnull(实收保费),0)中。请大神们帮忙看看!
这样改试一下追问
还是报这个错,麻烦再帮我看下呢
追答Sql2 = "select sum(nz(实收保费,0)) as bf from [Sheet2$] where 渠道名称'网上业务-专属产品渠道' and 最新渠道类型='传统直销业务' and 交强商业标志='交强' group by 最新业务归属人员 order by 最新业务归属人员"
这样改试一下
nz是什么呀?这个函数如何定义?
参考技术A sum(isnull(实收保费,0)) 应该是这样的。追问改了之后还是不对呢
参考技术B sum(isnull(实收保费,0))括号错了吧追问
改了之后还是不对。
追答select sum(isnull(实收保费,0)) as bf
from [Sheet2$]
where 渠道名称'网上业务-专属产品渠道'
and 最新渠道类型='传统直销业务'
and 交强商业标志='交强'
group by 最新业务归属人员
order by 最新业务归属人员
只是sql语句的话,这样是没问题,你可以在库里执行看看,如果 不对,请说出具体错误信息,光说不对,没意义
报错显示:用于函数参数的个数不对,在查询表达式 sum(isnull(实收保费,0))中
追答你数据库是什么数据库,确定是sqlserver?
追问是excel宏啊
追答access不能直接这样用isnull()函数,你这种写法是sqlserver的
试试:
sum(iif( IsNull(实收保费), 0, 实收保费))
在查询SQL语句中为空或不为空怎么写
如果是空字符串就字段名= '' 。如果是不等于空字符字段名 <> ''。如果是 null值 就是 字段名is null或者not null。
oracle sql查询结果为空时如何显示一条空记录:
1、我们来看下oracle sql普通查询时查询结果为空时的显示情况如下图所示。可以看到没做特殊处理时查询结果中一条记录都没有,此处的查询sql记为A查询。
2、我们第一时间会想到既然要求查询结果为空时显示一条空记录,我们首先得创造出一条空记录来,于是想到用一条空记录来和上面的sql查询union 一下,得到了如下查询结果。
3、从上面查询结果中我们好像看到了那就是我们想要达到的预期效果,但是问题来了,一旦我查询条件变化时(查询条件中的loginname参数值变化)。
参考技术A 如果是空字符串就 字段名= ''如果是不等于空字符 字段名 <> ''
如果是 null值 就是 字段名 is null 或者 not null 参考技术B where a is null
where a is not null
以上是关于sql sum求和,如果为空显示为0的主要内容,如果未能解决你的问题,请参考以下文章
在sql数据库中,我用聚合函数sum,为啥显示操作数据类型varchar对于sum运算符无效啊?