Py学习  »  DATABASE

我一直在寻找一个解决方案,在Mysql中得到多个列(一行)的总和,得到每小时的电费发票总额?

Sravani Basineni • 5 年前 • 1398 次点击  

我在下面写了一个查询来获取sum,但是对于两个记录,它显示(一些正在进行的)total为空。在第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
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56631
 
1398 次点击  
文章 [ 1 ]  |  最新文章 5 年前
GMB
Reply   •   1 楼
GMB    5 年前

总的来说 null

可能至少有一列有 这些记录的价值。在MySQL(和大多数其他RDBMS)中, 1 + null 产量 无效的 coalesce() :

coalesce(Metering0, 0) + coalesce(Metering1, 0) + coalesce(Metering2, 0) + ...

第4行显示1064错误

column_alias = <expression> 不是有效的MySQL语法(这是SQL Server语法)。你应该把列别名放在表达式后面,可选的是keyworkd as

coalesce(Metering0, 0) + coalesce(Metering1, 0) + coalesce(Metering2, 0) + ... as total