我不知道为什么我一直收到错误
数据是空的。无法在Null值上调用此方法或属性。
继承人我的查询将获得2016年2月18日至2016年2月23日期间所有totalovertime的总和1:
select sum(totalovertime) as totalovertime from timeinout where employeenumber = 1 and dateofin between 2016-02-18 and 2016-02-23
继承我的桌子:
employeenumber | totalovertime | dateofin
1 | 1 | 2016-02-19
1 | 1 | 2016-02-22
查询应返回2作为totalovertime,但错误仍然出现
但当我这样做时:
select sum(totalovertime) from timeinout where employeenumber = 1
此查询返回2并且那是正确的。
答案 0 :(得分:1)
尝试对SUM内的值使用ISNULL()
。
SUM(ISNULL(totalovertime, 0))
这将检查totalovertime是否为null并将其替换为0,如果是,则SUM可以正确处理。
对于某些字段,您的DateOfIn也可能为NULL,而BETWEEN运算符会抛出您的错误,但不确定是否可以这样做(检查您的表格数据!)
答案 1 :(得分:1)
处理日期时,您需要用单引号将它们包围起来。否则,SQL会将2016-02-18
解释为2016减去2减18.将查询更改为
select sum(totalovertime) as totalovertime
from timeinout
where employeenumber = 1
and dateofin between '2016-02-18' and '2016-02-23'