4

我有一个非常简单的查询:

SELECT a, b, a+b as c FROM records

效果很好。他是结果中的一个例子:

Array ( [a] => 100.92 [b] => 21.00 [c] => 121.92 )

但是我尝试按年份过滤记录的那一刻:

SELECT a, b, a+b as c FROM records
WHERE YEAR(`mydate`) = '2011'

a+b 计算消失:

Array ( [a] => 100.92 [b] => 21.00 [c] => ) 

我错过了一些明显的东西吗?

更新:

  1. 我被要求提供实际的 SQL,这里是:

    从交易中选择贷方、借方、贷方+借方作为总金额 WHERE YEAR( transaction_date) = '2011'

  2. transaction_date 是DATE字段类型。

  3. 此外,贷方或借方字段始终为零。

  4. PHP代码:

代码

include($_SERVER["DOCUMENT_ROOT"] . "/pool/_/db.php");

$sql = "SELECT credit, debit, credit+debit as total FROM transactions
            WHERE YEAR(`transaction_date`) = 2011";

$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_assoc($result)) {
        print_r($row);
}
4

1 回答 1

3

我唯一能想到的是creditor debitis NULL(not 0) 反过来也会使 total 的值NULL。试试这个,看看它是否改变了什么:

... COALESCE(credit, 0) + COALESCE(debit, 0) as total ...
于 2012-09-17T19:53:17.600 回答