我有一个非常简单的查询:
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] => )
我是否漏掉了一些明显的东西?
更新:
有人要求我提供实际的 SQL,这里是:
从交易中选择贷方、借方、贷方+借方作为总计 年份 (
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);
}
最佳答案
我唯一能想到的是 credit
或 debit
是 NULL
(不是 0
)反过来,也会使 total NULL
的值。试试这个,看看它是否改变了什么:
... COALESCE(credit, 0) + COALESCE(debit, 0) as total ...
关于php - 添加 WHERE YEAR 中断计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465390/