我有一个非常简单的查询:
SELECT a,b,a+b as c FROM records
Array ( [a] => 100.92 [b] => 21.00 [c] => 121.92 )
但是,当我尝试按年过滤记录时:
SELECT a,a+b as c FROM records WHERE YEAR(`mydate`) = '2011'
a b计算消失:
Array ( [a] => 100.92 [b] => 21.00 [c] => )
我错过了一些明显的东西吗
更新:
>我被问到实际的sql,这里是:
选择信用卡,借记卡,信用卡借记作为总FROM事务
年份(transaction_date)=’2011′
> transaction_date是DATE字段类型.
>此外,贷方或借方字段始终为零.
> 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); }
解决方法
我唯一能想到的是信用卡或借记卡都是NULL(而不是0),而这反过来也会产生总NULL的值.试试这个,看看它是否有任何改变:
... COALESCE(credit,0) + COALESCE(debit,0) as total ...