0

我有一张这样的桌子:

在此处输入图像描述

我需要的是给定部门在给定年份的金额总和。

我试过这个:

SELECT SUM(amount) FROM `spendings` WHERE dept_name='fiz' AND YEAR(date)=2012

但它只会返回NULLdept_nameis a varchar, amountis adoubledate- 好吧,它是 a ,真是date个惊喜。

我究竟做错了什么?

4

4 回答 4

0

部门 fiz 在 2012 年没有任何记录,因此未找到查询的总和为 Null

于 2012-09-25T23:57:44.757 回答
0

如果该表实际上是您要查询的数据,则 2012 年没有记录(只有 2010 年和 2011 年)

于 2012-09-25T23:57:55.607 回答
0

你没有任何记录WHERE dept_name='fiz' AND YEAR(date)=2012。dept 的两条记录'fiz'是 for'2010''2011'

于 2012-09-25T23:58:31.247 回答
0

只是为了不重复其他答案,如果你期望一个cero,那么使用:

SELECT COALESCE(SUM(amount),0) FROM `spendings` WHERE dept_name='fiz' AND YEAR(date)=2012

请注意COALESCE这里的功能

于 2012-09-26T00:02:24.960 回答