我有一个非常简单的查询:
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 ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。