Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于整型字段计算新列_Sql_Sqlite - Fatal编程技术网

Sql 基于整型字段计算新列

Sql 基于整型字段计算新列,sql,sqlite,Sql,Sqlite,我有一个包含整数列的表,名为“Day1Reg”、“Day2Reg”、“Day7Reg”、“Day1OT”、“Day2OT”、“Day7OT”。我想选择表中的所有行,计算两个名为“WkReg”和“WkOT”的新列,它们将是DayxReg和DayxOT的总和。Dayx列可能为空。以下是到目前为止的问题: select *, (Day1Reg+Day2Reg+Day3Reg+Day4Reg+Day5Reg+Day6Reg+Day7Reg) as WkReg, (Day1OT+Day2OT+

我有一个包含整数列的表,名为“Day1Reg”、“Day2Reg”、“Day7Reg”、“Day1OT”、“Day2OT”、“Day7OT”。我想选择表中的所有行,计算两个名为“WkReg”和“WkOT”的新列,它们将是DayxReg和DayxOT的总和。Dayx列可能为空。以下是到目前为止的问题:

select
  *,
  (Day1Reg+Day2Reg+Day3Reg+Day4Reg+Day5Reg+Day6Reg+Day7Reg) as WkReg,
  (Day1OT+Day2OT+Day3OT+Day4OT+Day5OT+Day6OT+Day7OT) as WkOT
from
  Week01
where
  UserName = "JustMe"

WkReg和WkOT列已创建,但没有值。在几个Dayx列中都有整数值。没有返回错误,只返回WkReg和WkOT中的空白值。

推测,一些整数值是
NULL
,这导致整个总和为
NULL
。您可以使用
coalesce()
将值替换为
0

UPDATE `Week01` SET `WkReg` = (Day1Reg+Day2Reg+Day3Reg+Day4Reg+Day5Reg+Day6Reg+Day7Reg), 
`WkOT`=(Day1OT+Day2OT+Day3OT+Day4OT+Day5OT+Day6OT+Day7OT) 
WHERE `UserName` = "JustMe"
select w.*
       (coalesce(Day1Reg, 0) + coalesce(Day2Reg, 0) + coalesce(Day3Reg, 0) +
        coalesce(Day4Reg, 0) + coalesce(Day5Reg, 0) + coalesce(Day6Reg, 0) + coalesce(Day7Reg, 0)
       ) as WkReg,
       (coalesce(Day1OT, 0) + coalesce(Day2OT, 0) + coalesce(Day3OT, 0) +
        coalesce(Day4OT, 0) + coalesce(Day5OT, 0) + coalesce(Day6OT, 0) + coalesce(Day7OT, 0)
       ) as WkOT
from Week01 w
where w.UserName = 'JustMe';