我有一张这样的桌子:
我需要的是给定部门在给定年份的金额总和。
我试过这个:
SELECT SUM(amount) FROM `spendings` WHERE dept_name='fiz' AND YEAR(date)=2012
但它只会返回NULL
。dept_name
is a varchar
, amount
is adouble
和date
- 好吧,它是 a ,真是date
个惊喜。
我究竟做错了什么?
我有一张这样的桌子:
我需要的是给定部门在给定年份的金额总和。
我试过这个:
SELECT SUM(amount) FROM `spendings` WHERE dept_name='fiz' AND YEAR(date)=2012
但它只会返回NULL
。dept_name
is a varchar
, amount
is adouble
和date
- 好吧,它是 a ,真是date
个惊喜。
我究竟做错了什么?
部门 fiz 在 2012 年没有任何记录,因此未找到查询的总和为 Null
如果该表实际上是您要查询的数据,则 2012 年没有记录(只有 2010 年和 2011 年)
你没有任何记录WHERE dept_name='fiz' AND YEAR(date)=2012
。dept 的两条记录'fiz'
是 for'2010'
和'2011'
。
只是为了不重复其他答案,如果你期望一个cero,那么使用:
SELECT COALESCE(SUM(amount),0) FROM `spendings` WHERE dept_name='fiz' AND YEAR(date)=2012
请注意COALESCE
这里的功能