我编写了下面的查询,以获取sum,但它显示(某些进展)为null,用于几个记录。当我包括以下所有记录时,它在第4行显示了1064个错误。
select
Metering0,Metering1,Metering2,Metering3,Metering4,Metering5,Metering6,Metering7,Metering8,Metering9,Metering10,Metering11,Metering12,
Metering13,Metering14,Metering15,Metering16,Metering17,Metering18,Metering19,Metering20,Metering21,Metering22
total = (Metering0+Metering1+Metering2+Metering3+Metering4+Metering5+Metering6+Metering7+Metering8+Metering9+Metering10+Metering11+Metering12
+Metering13+Metering14+Metering15+Metering16+Metering17+Metering18+Metering19+Metering20+Metering21+Metering22)
from ireneene_calculationdb.invoice_template_year
发布于 2019-12-12 08:41:11
--它以
null
的形式显示了几个记录
可能,至少有一个列具有这些记录的null
值。在MySQL (和大多数其他关系数据库管理系统)中,1 + null
生成null
。您可以使用coalesce()
来解决这个问题。
coalesce(Metering0, 0) + coalesce(Metering1, 0) + coalesce(Metering2, 0) + ...
在第4行显示了1064个错误
column_alias = <expression>
不是有效的MySQL语法(这是Server语法)。应该将列别名放在表达式后面,选项由keyworkd as
预先执行,如下所示:
coalesce(Metering0, 0) + coalesce(Metering1, 0) + coalesce(Metering2, 0) + ... as total
https://stackoverflow.com/questions/59300423
复制相似问题